1. 程式人生 > >MAT(Memory Analyzer Tool)工具入門介紹

MAT(Memory Analyzer Tool)工具入門介紹

1、MAT是什麼?

    MAT(Memory Analyzer Tool),一個基於Eclipse的記憶體分析工具,是一個快速、功能豐富的JAVA heap分析工具,它可以幫助我們查詢記憶體洩漏和減少記憶體消耗。使用記憶體分析工具從眾多的物件中進行分析,快速的計算出在記憶體中物件的佔用大小,看看是誰阻止了垃圾收集器的回收工作,並可以通過報表直觀的檢視到可能造成這種結果的物件。

   

2.為什麼使用MAT?
    當伺服器應用佔用了過多記憶體的時候,會遇到OutOfMemoryError。如何快速定位問題呢?Eclipse MAT的出現使這個問題變得非常簡單。它能夠離線分析dump的檔案資料。
    Eclipse MAT是SAP公司貢獻的一個工具,可以在Eclipse網站下載到它,完全免費的。它可比Sun提供的記憶體映象分析工具jhat要強太多了。
3.
首頁:
外掛更新地址:

先呼叫jdk的工具得到heap使用情況

我安裝的是jdk1.6

C:/>java -version

java version "1.6.0_11"

Java(TM) SE Runtime Environment (build 1.6.0_11-b03)

Java HotSpot(TM) Client VM (build 11.0-b16, mixed mode, sharing)

呼叫jdk工具jps檢視當前的java程序

C:/>jps

3504 Jps

3676 Bootstrap

3496 org.eclipse.equinox.launcher_1.0.201.R35x_v20090715.jar

呼叫jmap工具得到資訊

C:/>jmap -dump:format=b,file=heap.bin 3676

Dumping heap to C:/heap.bin ...

Heap dump file created

這時,我們的C盤根目錄,就生成了heap.bin檔案,用eclipse的file---->open開啟這個檔案,首先是一個啟動圖:

這裡可以選擇檢視

1、記憶體洩露報表,自動檢查可能存在記憶體洩露的物件,通過報表展示存活的物件以及為什麼他們沒有被垃圾收集;

2、物件報表,對可穎物件的分析,如字串是否定義重了,空的collection、finalizer以及弱引用等。

我這裡選擇的是檢視記憶體報表,以下是截的簡略圖:

 

通過報表展示,蠻清楚的,下面還有詳細的說明,這裡就沒有帖圖了,有興趣的可以繼續探究。