測試環(huán)境
Java : JDK1.6
Tomcat: Tomcat 5.5
Eclipse Memory Analyzer:EMA 1.2.1(直接去Eclipse下載,無需安裝哈)
獲得Heap Dump文件
Eclipse Memory Analyzer是針對Heap Dump文件進行分析的,因此第一步就是要獲得Heap Dump文件。
步驟:
獲得線程ID。啟動jconsole.exe,它位于jdk目錄下的bin目錄,jconsole是jdk自帶的一個內(nèi)存分析工具,它提供了圖形界面。可以查看到被監(jiān)控的jvm的內(nèi)存信息,線程信息,類加載信息,MBean信息。

此處我們可以找到需要檢測的Tomcat的線程ID。
獲得Heap Dump文件。使用jmap來獲得Heap Dump文件,命令行如下:
jmap -dump:format=b,file=heap.bin 3888
此處3888就是Tomcat對應的線程ID

生成分析報告
啟動MemoryAnalyzer.exe,打開指定的Heap Dump文件。File -> Open Heap Dump

MAT針對指定的Heap Dump文件進行分析,生成內(nèi)存泄露檢測報告


看懂分析報告
要想看懂EAT的報告,與其到網(wǎng)上去找各種神貼,不如老老實實找本書,先簡單復習下JVM的Heap是怎么工作滴?gc的大概一個工作機制。否則EAT的報告就像天書一樣。EAT只是工具,不是目的。