分析Java堆转储时耗尽内存

时间:2010-06-07 15:03:59

标签: java memory-leaks profiling

我有一个奇怪的问题,我需要分析一个大小为1.5GB的Java堆转储(来自IBM JRE),问题是在分析转储时(我已尝试HeapAnalyzerIBM Memory Analyzer 0.5)工具耗尽内存我无法真正分析转储。我的机器中有3GB的RAM,但似乎还不足以分析1.5 GB的转储,

我的问题是,您是否知道我可以使用我拥有的内存量运行的堆转储分析(支持IBM JRE转储)的特定工具?

感谢。

2 个答案:

答案 0 :(得分:4)

尝试SAP内存分析器工具,它也有一个日食plugin。此工具在处理转储文件时在磁盘上创建索引文件,并且所需内存比其他选项少得多。我很确定它支持更新的IBM JRE。话虽如此 - 使用1.5 GB转储文件,您可能没有其他选择,只能运行64位JVM来分析此文件 - 我通常估计大小 n 的堆转储文件占用<使用标准工具打开强> 5 * n 内存,使用MAT打开 3 * n 内存,但是你的milage会根据转储实际包含的内容而有所不同。

答案 1 :(得分:1)

在3GB RAM上分析1.5GB堆转储很困难。因为3GB你的操作系统,其他进程,服务......很容易占用0.5 GB。所以你只剩下2.5GB了。 heapHero工具可以有效地分析堆转储。它应该只比堆转储的大小多0.5GB来分析。你可以尝试一下。但最好的建议是分析具有足够内存的计算机上的堆转储,或者只是在分析堆转储期间才能获得AWS ec2实例。分析堆转储后,您可以终止实例。