分析Java堆转储时耗尽内存

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

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

谢谢。

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

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