我有一个我想分析的HotSpot JVM堆转储.VM运行时-Xmx31g,堆转储文件大48 GB.
jhat,因为它需要大约五倍的堆内存(在我的情况下将是240 GB)并且非常慢.ArrayIndexOutOfBoundsException在分析堆转储几个小时后崩溃.还有哪些其他工具可用于该任务?一套命令行工具是最好的,包括一个程序,它将堆转储转换为高效的数据结构进行分析,并与其他几个处理预结构化数据的工具相结合.
我使用的是 jdk64,我的 java 版本是“1.6.0_24”。我的 tomcat 使用 -Xmx7196m 运行,而 jvisualvm 使用 -J-Xms2048m -J-Xmx3072m 运行。我对我的 tomcat java 进程进行了堆转储,我的.hprof文件大小约为 5.5 GB。当我尝试打开这个堆转储时,它只是停留在Loading Heap Dump...屏幕上。
我还查看了 VisualVM 在尝试打开堆转储时的堆消耗情况,但只有 500MB 左右。
注意:我确实看过jvisualvm: Stuck on “Loading Heap Dump” screen question 但它是不同的并且没有解决我的问题。