我试图使用 Eclipse MAT 解析 11GB 堆转储,但出现以下错误
An internal error occurred during: "Parsing heap dump"
我认为 MAT 无法解析如此巨大的堆转储。我阅读了一些帖子并将 VM 配置增加到转储大小的 80% 以上。以下是我的虚拟机配置
-vmargs -Xms8192m -Xmx10240m
而且我仍然无法加载转储。我尝试使用 ParseHeapDump.bat 没有任何更改...
我试图使用 Eclipse MAT 解析 11GB 堆转储,但出现以下错误
An internal error occurred during: "Parsing heap dump"
我认为 MAT 无法解析如此巨大的堆转储。我阅读了一些帖子并将 VM 配置增加到转储大小的 80% 以上。以下是我的虚拟机配置
-vmargs -Xms8192m -Xmx10240m
而且我仍然无法加载转储。我尝试使用 ParseHeapDump.bat 没有任何更改...
继续增加Xmx直到 JVM 抱怨,然后增加你的交换文件大小,然后Xmx再次增加,等等。
在那个阶段,它将需要很长时间,因为它将使用磁盘作为 RAM。
我最近在 Mac OS Catalina (10.15.3) 上安装了 Eclipse MAT(Eclipse Memory Analyzer 版本 1.9.1)。我需要查看 4g 堆转储。MAT 的默认 JVM 堆大小为 1024m。
我认为增加 JVM 堆大小的最简单方法是使用 shell 窗口 - 转到 /Applications/mat.app/Contents/Eclipse/ 文件夹。然后 vi MemoryAnalyzer.ini 并将 -Xmx1024m 更改为您需要的值,在我的情况下,我选择了 -Xmx10g。
要查看更改,请重新启动 MAT 并转到帮助 -> 关于 Eclipse 内存分析器,然后单击安装详细信息,然后查找条目:eclipse.vmargs=-Xmx10g 大约 50 行。
在 Eclipse Photon 的 Windows 安装中,我通过更新 eclipse.ini 文件中的内存参数解决了这个问题。这是直接在我的c:\eclipse文件夹下。
-Xms6g
-Xmx6g
我尝试将它设置为 4 gigs 以获得大约 4.1GB 的内存转储,但它失败了。因此,经验法则是将其设置为高于内存转储大小的值。
这个设置对我有用。
我最近还安装了 Eclipse MAT 来分析4.85GB堆转储文件。
Eclipse Memory Analyzer Version: 1.11.0
MacOS Catalina: 10.15.7
Hardware Memory: 16GB
Heap dump file size: 4.85GB
Heap dump file type: PHD
Classes: 33.6k
Objects: 4.8m
Class Loader: 575
我将其更改MemoryAnalyzer.ini为14GB:
-vmargs
-Xmx14g
我还确认了配置如下:
Help -> About Eclipse Memory Analyzer 1.11.0Installation DetailsConfiguration选项卡eclipse.vmargs=-Xmx14g。加载这个 4.85 堆转储文件需要几分钟时间。
注意:我尝试Xmx使用 2g、4g、8g、10g、12g 设置失败 - Eclipse MAT 工具中的 JVM 内存不足都失败了。