I am attempting to debug a permgen error in an application. I am running VisualVM to profile the app and have taken a heapdump of the memory snapshot.
Loading the snapshot into VisualVM for analysis, I can currently see in the classes list several classes appearing several times, all listed with 0 instances, 0 size – I am only expecting one of these classes each (probably linked to its classloader) – Is there any way to determine what is still holding references to these classes with no instances? Happy to use another tool if I can just load in the dump(.hprof) to analyze what is holding the reference.
Thanks!
I use MAT for stuff like this. Works great, even on large heaps.