如何使用VisualVM打开大型堆转储文件?

6
我使用VisualVM创建了一个堆转储。生成的.hprof文件约为6GB。
当我尝试在VisualVM中加载该文件时,它卡在50%处。卡住时,在我使用的计算机上似乎没有消耗任何额外资源。CPU很安静,仅使用可用内存的约一半,并且没有报告任何IO。 jvisualvm:在“加载堆转储”屏幕上卡住提出了类似的问题,但唯一的答案建议通过VisualVM创建.hprof文件(我已经这样做了)。
打开这个大小的堆转储是否需要使用任何特殊设置?

看看我对类似问题的回答。这会有帮助吗? - Tomas Hurka
请参见 https://dev59.com/12w05IYBdhLWcg3wahJM。 - rogerdpack
1个回答

11

我建议你使用MAT Eclipse Memory Analyzer打开它,这是一款强大的工具,用于分析那种堆转储文件,并且它是分析堆文件的常见方式。

此外,您需要增加MAT内存才能打开如此庞大的文件,您可以按照以下方式操作:

  1. 打开位于MAT_HOME目录中的config.ini文件。
  2. -Xmx的值更改为大于6GB的值。

上面的链接还包含有关如何使用MAT的教程。

如果MAT无法打开Heap文件,则该文件可能已损坏。


谢谢您的建议。我会去看看。 - user1454117
尝试一下后,你会再次感谢我的,它非常强大且易于使用 :) - Salah
MAT无法打开我的.hprof文件。它认为文件已损坏。也许这就是VisualVM无法打开它的原因。 - user1454117
是的,文件已经损坏。 - Salah
在 Mac 上,我需要编辑 /Applications/mat.app/Contents/Eclipse/MemoryAnalyzer.ini 来增加内存。 - nilgun

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接