整体思路:
使用步骤:
首先生成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生成比较结果表