整體思路:
使用步驟:
首先生成hprof文件並導入MAT:
然后使用mat分析;
一、Mac OS下MAT(Memory Analyzer Tool)安裝與啟動
原文鏈接:https://blog.csdn.net/hanchao5272/article/details/93379202
簡述
MAT(Memory Analyzer Tool),內存分析工具,是一款常用的JVM調優工具,對於分析內存泄漏(Memory Leak)有奇效。
本文主要描述在Mac系統下,如何安裝MAT及成功啟動。
環境
操作系統:MacOS High Sierra 10.13.4
MAT: 1.9.0.20190605
下載地址:https://www.eclipse.org/mat/downloads.php
版本:Mac OSX (Mac/Cocoa/x86_64)
安裝與啟動
下載完成,在Downloads目錄下找到MemoryAnalyzer-1.9.0.20190605-macosx.cocoa.x86_64.zip。
解壓文件,得到mat.app目錄。
直接通過shell執行/Users/admin/Downloads/mat.app/Contents/MacOS/MemoryAnalyzer -data ./workspace即可啟動mat。
如果覺得直接把mat放在Downloads目錄不妥,可以自行移動其所在位置,然后相應修改啟動命令即可。
————————————————
版權聲明:本文為CSDN博主「hanchao5272」的原創文章,遵循CC 4.0 BY-SA版權協議,轉載請附上原文出處鏈接及本聲明。
原文鏈接:https://blog.csdn.net/hanchao5272/article/details/93379202
我自己本地的地址:mat.app在Documents 下面
執行命令:
/Users/dongpei.ma/Documents/mat.app/Contents/MacOS/MemoryAnalyzer -data /tmp/workspace
或者/Users/dongpei.ma/Documents/mat.app/Contents/MacOS/MemoryAnalyzer -data ./workspace

二、MAT 工具使用介紹
參考:https://www.jianshu.com/p/97251691af88
MAT 頁面

用工具打開標准的.hprof 文件后界面如下:
2.1 Overview選項
當成功啟動MAT后,通過菜單選項“File->Open heap dump...”打開指定的dump文件后,將會生成Overview選項,如下所示:
在Overview選項中,以餅狀圖的形式列舉出了程序內存消耗的一些基本信息,其中每一種不同顏色的餅塊都代表了不同比例的內存消耗情況。

2.2 我們主要分析Actions, 它包含了4個部分:每部分的含義如下:
Histogram: 列舉內存中對象存在的個數和大小
點擊Histogram之后,會出現如下界面:


我們再來看一下右鍵菜單選項:

1)List objects:
with outgoing references :查看它所引用的對象
with inncoming references :查看它被哪些對象引用
2)Show objects by classs:
和List objects選項類似,只不過列出的是類名。
by outgoing references :查看它所引用的對象
by inncoming references :查看它被哪些對象引用

Dominator Tree: 該視圖會以內存的百分比來列舉所有實例對象,注意這個地方是對象而不是類類,這個視圖是用來發現大內存對象的
Top Consumers: 該視圖會顯示可能的內存泄漏點
Duplicate Classes: 該視圖顯示重復的類等信息
點擊他們能得到不同的視圖,下面來一一介紹:

四、簡單案例分析
參考:https://www.jianshu.com/p/97251691af88
使用步驟:
首先生成hprof文件並導入MAT:
然后使用mat分析;
4.1生成hprof文件並導入MAT:
4.2生成比較結果表
