当我尝试打开我的 .hprof 文件(800 MB)时,我得到:
在“从 'D:\Workspace\Java\MemoryLeaks\java_pid9004.hprof' 解析堆转储”期间发生内部错误。
我尝试将堆大小增加到 -Xmx2048m,但这无济于事。
当我尝试打开我的 .hprof 文件(800 MB)时,我得到:
在“从 'D:\Workspace\Java\MemoryLeaks\java_pid9004.hprof' 解析堆转储”期间发生内部错误。
我尝试将堆大小增加到 -Xmx2048m,但这无济于事。
Eclipse MAT – 增加堆大小
如果您正在分析大小为 800 mb 的堆转储,请至少为 Eclipse MAT 分配额外的 800 mb 空间。如果您可以分配更多的堆空间,那就更好了。您可以通过编辑MemoryAnalyzer.ini文件为 Eclipse MAT 工具分配额外的堆空间。此文件位于 MemoryAnalyzer.exe 所在的同一文件夹中。您将在 MemoryAnalyzer.ini 的底部添加 -Xmx1600m。
下面是一个添加了 -Xmx 值的 MemoryAnalyzer.ini 文件示例:
-startup
plugins/org.eclipse.equinox.launcher_1.3.100.v20150511-1540.jar
--launcher.library
plugins/org.eclipse.equinox.launcher.win32.win32.x86_64_1.1.300.v20150602-1417
-vmargs
-Xmx1600m
另一方面,您可以考虑使用其他内存分析工具,例如:HeapHero.io和JHat。但是请注意,JHat 不适用于大型堆转储,并且需要很长时间才能加载。
800MB到底是什么?您确定堆转储没有更多内容而且您不只是使用其中的一部分吗?