Java内存分析工具MAT(Memory Analyzer Tool)安装使用实例

 

整体思路:

使用步骤:

首先生成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生成比较结果表

 

posted @ 2020-06-22 15:45  FairyTaleTown  Views(2532)  Comments(0Edit  收藏  举报