1

当我尝试打开我的 .hprof 文件(800 MB)时,我得到:

在“从 'D:\Workspace\Java\MemoryLeaks\java_pid9004.hprof' 解析堆转储”期间发生内部错误。

我尝试将堆大小增加到 -Xmx2048m,但这无济于事。

4

2 回答 2

2

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.ioJHat。但是请注意,JHat 不适用于大型堆转储,并且需要很长时间才能加载。

于 2018-03-30T03:53:14.157 回答
0

800MB到底是什么?您确定堆转储没有更多内容而且您不只是使用其中的一部分吗?

于 2012-06-13T22:31:26.040 回答