Description
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.
Attachments
Attachments
Issue Links
- breaks
-
HADOOP-8632 Configuration leaking class-loaders
- Closed