我在连续的javacore转储中观察到类加载器的地址在Websphere 6.1(IBM JVM 1.5.0)中发生了变化。类加载器下面的类具有未更改的地址。那么它不是新地址的同一个类加载器吗?
E.g。在第一个javacore
2CLTEXTCLLOAD Loader com / ibm / ws / classloader / CompoundClassLoader(0x00002AAABF5BB7F0)
3CLTEXTCLASS org / eclipse / emf / ecore / EObject(0x00002AAB24684B30)
以及后来的javacore
2CLTEXTCLLOAD Loader com / ibm / ws / classloader / CompoundClassLoader(0x00002AAABF5AB6E0)
3CLTEXTCLASS org / eclipse / emf / ecore / EObject(0x00002AAB24684B30)
以前在类加载器0x00002AAABF5BB7F0下的相同类,现在类加载器位于0x00002AAABF5AB6E0
我正在试图找出一个类卸载问题,而这似乎并没有让你在挖掘堆转储时更轻松。
答案 0 :(得分:1)
也许GC正在压缩堆。将-Xnocompactgc或-Xnocompactexplicitgc视为通用JVM参数。请参阅IBM JDK诊断文档: http://www.ibm.com/developerworks/java/jdk/diagnosis/
答案 1 :(得分:0)
如果应用程序已停止并重新启动,则不会为您的类创建新的类加载器,因为有一个应用程序类加载器?
您是否因为本机堆消耗或其他问题而对此感到担忧?