我有一个堆转储,导致我的程序内存不足异常,堆转储的大小是12GB,因为我无法在我的MAT分析器中加载它,我可以尝试的替代方案是什么,或者有一种方法可以将堆转储上传到MAT。
tzcvj98z1#
如果你的服务器有足够的空闲内存,那么你可以尝试在增加堆大小后在该服务器上运行MAT。分配给MAT的内存越多,它的运行速度就越快。在MemoryAnalyzer.ini文件中,您将获得-Xmx选项来更改MAT的最大堆大小。MAT文档还建议禁用GC开销限制。
-vmargs -Xmx18g -XX:-UseGCOverheadLimit
您也可以尝试使用ParseHeapDump脚本以“headless”模式运行MAT。还有像visualvm * 这样的其他工具,但是 * 你需要为它分配几乎相同的内存量来处理这个大的堆转储。据我所知,没有MAT的在线版本。还有一个在线选项是heaphero,但在将堆转储上传到第三方站点时请小心,因为堆转储可能包含敏感信息。
nxowjjhe2#
最好是分析远程Unix服务器中的堆转储。如果它有足够的RAM(可用RAM应该> heap-dump-size)。我无法解析堆转储(> 8 GB)在本地系统中使用MAT GUI(RAM <16 GB)。因此,去无头垫选项。请检查https://stackoverflow.com/a/76298700/5140851
2条答案
按热度按时间tzcvj98z1#
如果你的服务器有足够的空闲内存,那么你可以尝试在增加堆大小后在该服务器上运行MAT。分配给MAT的内存越多,它的运行速度就越快。
在MemoryAnalyzer.ini文件中,您将获得-Xmx选项来更改MAT的最大堆大小。MAT文档还建议禁用GC开销限制。
您也可以尝试使用ParseHeapDump脚本以“headless”模式运行MAT。还有像visualvm * 这样的其他工具,但是 * 你需要为它分配几乎相同的内存量来处理这个大的堆转储。
据我所知,没有MAT的在线版本。还有一个在线选项是heaphero,但在将堆转储上传到第三方站点时请小心,因为堆转储可能包含敏感信息。
nxowjjhe2#
最好是分析远程Unix服务器中的堆转储。如果它有足够的RAM(可用RAM应该> heap-dump-size)。
我无法解析堆转储(> 8 GB)在本地系统中使用MAT GUI(RAM <16 GB)。
因此,去无头垫选项。请检查https://stackoverflow.com/a/76298700/5140851