[
https://issues.apache.org/jira/browse/HADOOP-6133?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12749771#action_12749771
]
Chris Douglas commented on HADOOP-6133:
---------------------------------------
Won't this prevent classes from being unloaded by retaining a reference to
ClassLoaders in the cache? While HADOOP-4187 is explicitly temporary, this
solution is unlikely to be removed with the cause of the regression.
I can't think of any places where there would be fierce contention for an
explicit lock on the cache requiring a ConcurrentHashMap for the outer map.
Would a WeakHashMap suffice, here?
> ReflectionUtils performance regression
> --------------------------------------
>
> Key: HADOOP-6133
> URL: https://issues.apache.org/jira/browse/HADOOP-6133
> Project: Hadoop Common
> Issue Type: Improvement
> Components: conf
> Affects Versions: 0.20.0
> Reporter: Todd Lipcon
> Assignee: Todd Lipcon
> Attachments: hadoop-6133-0.20.patch, hadoop-6133-trunk.txt, Test.java
>
>
> HADOOP-4187 introduced extra calls to Class.forName in
> ReflectionUtils.setConf. This caused a fairly large performance regression.
> Attached is a microbenchmark that shows the following timings (ms) for 100M
> constructions of new instances:
> Explicit construction (new Test): around ~1.6sec
> Using Test.class.newInstance: around ~2.6sec
> ReflectionUtils on 0.18.3: ~8.0sec
> ReflectionUtils on 0.20.0: ~200sec
> This illustrates the ~80x slowdown caused by HADOOP-4187.
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.