我使用 VisualVM 创建了堆转储。生成的 .hprof
文件约为 6GB。
当我尝试在 VisualVM 中加载文件时,它卡在了 50%。卡住时,我正在使用的计算机上似乎没有消耗额外的资源。 CPU 很安静,只有大约一半的可用内存在使用,并且没有任何 IO 报告。
jvisualvm: Stuck on “Loading Heap Dump” screen问了一个类似的问题,但唯一的答案是建议通过 VisualVM 创建 .hprof
文件(我已经这样做了)。
是否需要使用任何特殊设置来打开这种大小的堆转储?
最佳答案
我建议你用MAT
Eclipse Memory Analyzer打开它, 它是分析此类堆转储文件的强大工具,除了它是分析堆文件的常用方法。
还需要增加MAT内存以打开那个大文件,您可以按以下方式执行此操作:
- 打开位于 MAT_HOME 目录中的
config.ini
文件。 - 将
-Xmx
的值更改为大于6GB
。
上面的链接还包含如何使用 MAT
的教程。
如果 MAT
无法打开堆文件,则该文件可能已损坏。
关于java - 如何使用 VisualVM 打开大型堆转储?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23069213/