|Eclipse Java debugger and class unloading. [message #1457712]
|Fri, 31 October 2014 16:14
| Duncan MacGregor
Registered: October 2014
I'm working on a project to implement a dynamically typed language on the JVM using the JSR-292 invokeDynamic infrastructure. Some other members of the team have complained about long pauses during startup when running with the Eclipse Juno debugger, and I've been able to reproduce these in both Juno and Luna. The problem seems to be that the debugger is making a jdwp classesForSignature request for each class that has been unloaded, and each request requires the jdwp library to iterate over every single loaded class. Since the Java 8 implementation of invokeDynamic & method handles generates a large number of small anonymous classes (which can be GCed if no longer referenced), and we are also quite careful to ensure our own temporary class files can also be GCed away this produces a lot (several thousand) classesForSignature calls, each of which has to iterate over tens of thousands of classes.
Does anybody know why the debugger is issuing classesForSignature requests for unloaded classes, and if there is some way to stop it?
Powered by FUDForum
. Page generated in 0.01957 seconds