这个一定要记下来,以备不时之需:

IBM HeapAnalyzer

更多信息见官方网站地址:http://www.alphaworks.ibm.com/tech/heapanalyzer

 在我们的应用程序发生内存泄露的时候,会生成heapdump文件,文件名字类似于这样:heapdump.20081105.031129.172870.phd,即heapdump. <yyyymmdd>.<hhmmss>.pid>.phdheapdump文件是指定时刻的java堆栈的快照,是一种镜像文件。HeapAnalyzer工具通过分析heapdump文件,哪些对象占用了太多的堆栈空间,来发现导致内存泄露或者可能引起内存泄露的对象。

Memory Dump Diagnostic for Java (MDD4J)

是IBM Support Assistant(ISA)里的一个工具,可以在ISA里加载。它的使用方法和HeapAnalyzer类似,不过它会自动列出“可疑泄漏点”供分析。所依据的,是“分析算法查找父对象与子对象之间对象大小的显著变化。这些发生显著变化的父对象可能是基于数组的容器对象,它们包含大量不断增大的子对象。”

以上两个工具基本上支持所有版本JDK生成的堆转储文件。

IBM Thread and Monitor Dump Analyzer for Java

 

更多信息见官方网站地址:http://www.alphaworks.ibm.com/tech/jca

 

在一些平台上,在有些情况下,javacore也被称为javadump,它包含jvm和应用程序相关的在特定时刻的一些诊断信息,如操作系统,应用程序环境,线程,native stack本地堆,锁,和内存的信息。在生成heapdump文件的时候,一般会生成javacore文件。

 Operating System

Javacore file name

Format Meaning

Windows and Linux

javacore.YYYYMMDD.HHMMSS.PID.txt

YYYYMMDD =year month day, D=processID 

AIX    

javacorePID.TIME.txt

PID=processID, TIME=seconds since1/1/1970

 IBM Thread and Monitor Dump Analyzer for Java通过分析javacore文件可以发现死锁,可能的悬挂线程,资源竞争等。不知道能不能分析HP-UX产生的javacore文件,期待中,目前没有对应的javacore,所以也没法研究。

 

 切记:javacore文件是关于cpu的,heapdump文件是关于内存的