一、MAT是什麼?java
MAT(Memory Analyzer Tool),一個基於Eclipse的內存分析工具,是一個快速、功能豐富的JAVA heap分析工具,它能夠幫助咱們查找內存泄漏和減小內存消耗。使用內存分析工具從衆多的對象中進行分析,快速的計算出在內存中對象的佔用大小,看看是誰阻止了垃圾收集器的回收工做,並能夠經過報表直觀的查看到可能形成這種結果的對象。服務器
2.爲何使用MAT?
當服務器應用佔用了過多內存的時候,會遇到OutOfMemoryError。如何快速定位問題呢?Eclipse MAT的出現使這個問題變得很是簡單。它可以離線分析dump的文件數據。
Eclipse MAT是SAP公司貢獻的一個工具,能夠在Eclipse網站下載到它,徹底免費的。它可比Sun提供的內存鏡像分析工具jhat要強太多了。
3.
首頁:http://www.eclipse.org/mat/
插件更新地址:
http://download.eclipse.org/mat/1.0/update-site/eclipse
先調用jdk的工具獲得heap使用狀況工具
我安裝的是jdk1.6網站
C:/>java -versionui
java version "1.6.0_11"spa
Java(TM) SE Runtime Environment (build 1.6.0_11-b03)插件
Java HotSpot(TM) Client VM (build 11.0-b16, mixed mode, sharing)orm
調用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打開這個文件,首先是一個啓動圖:
這裏能夠選擇查看
一、內存泄露報表,自動檢查可能存在內存泄露的對象,經過報表展現存活的對象以及爲何他們沒有被垃圾收集;
二、對象報表,對可穎對象的分析,如字符串是否認義重了,空的collection、finalizer以及弱引用等。
我這裏選擇的是查看內存報表,如下是截的簡略圖:
經過報表展現,蠻清楚的,下面還有詳細的說明,這裏就沒有帖圖了,有興趣的能夠繼續探究。
本文出自:馮立彬的博客