HEAP DUMP 太大而无法在 Eclipse MAT 中打开

问题描述

我有一个堆转储导致我的程序出现内存不足异常,堆转储的大小为 12GB,因此我无法在我的 MAT 分析器中加载它,我可以尝试哪些替代方法,或者有什么方法可以将堆转储上传到 MAT。

解决方法

如果您的服务器有大量可用内存,那么您可以在增加堆大小后尝试在该服务器上运行 MAT。分配给 MAT 的内存越多,它的运行速度就越快。

在 MemoryAnalyzer.ini 文件中,您将获得 -Xmx 选项来更改 MAT 的最大堆大小。 MAT documentation 还建议禁用 GC 开销限制。

-vmargs
-Xmx18g
-XX:-UseGCOverheadLimit

您也可以尝试使用 ParseHeapDump 脚本在“无头”模式下运行 MAT。还有其他工具,比如visualvm但是你需要为它分配几乎相同数量的内存来处理这个大堆转储。

据我所知,没有在线版本的 MAT。还有其他在线选项是 heaphero 但是在将堆转储上传到第三方站点时请小心,因为堆转储可能包含敏感信息

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...