2010-06-07 100 views
4

我有一个奇怪的问题,我需要分析一个Java堆转储(从IBM JRE),其中有1.5GB大小,问题是,在分析转储(我已经试过HeapAnalyzerIBM Memory Analyzer 0.5)工具内存不足,我无法真正分析转储。我的机器上有3GB的内存,但似乎还不足以分析1.5 GB的转储,我的问题是,您是否知道可以运行堆转储分析(支持IBM JRE转储)的特定工具与我有的内存量?运行内存,同时分析一个Java堆转储

谢谢。

+0

什么是JVM的最大堆大小设置,当你正在运行这些工具?确保它被设置为至少2GB。 – Mark 2010-06-07 15:18:41

+0

我一直在操纵该设置,其实最大我已经能够开始时的工具是从我的机器1600 MB(-Xmx1600m)我得到一个错误,指定是不是可以使用,如果我指定我更大的价值分配请求的内存量。 – 2010-06-07 15:32:58

+2

借用一台64位机器半个小时。 – 2010-06-07 15:44:49

回答

4

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

+0

同意MAT。我已经能够打开1.5Gb堆转储,但它在具有4GB内存的计算机上使用64位JVM。 – Mark 2010-06-07 20:34:13

+0

我能够在Linux中运行MAT,这个人是一个32位中,但看起来像Linux的实际上是能够处理(我用-Xmx3000m),我终于可以解析转储3GB的过程,现在我能够从Windows进行分析=) – 2010-06-10 14:47:56