MAT堆栈分析工具安装使用

首先打开官网下载工具

Eclipse Memory Analyzer Open Source Project | The Eclipse Foundation

如果是linux上的使用

下载linux的MAT版本解压后

 该版本需要jdk11以上才可以运行

所以 先下载jdk 然后解压 Archived OpenJDK GA Releases

 修改MemoryAnalyzer.ini   添加-vm指定jdk环境

-startup
plugins/org.eclipse.equinox.launcher_1.6.200.v20210416-2027.jar
-vm
/root/jdk-11/bin/java
--launcher.library
plugins/org.eclipse.equinox.launcher.win32.win32.x86_64_1.2.200.v20210429-1609
-vmargs
-Xmx4024m

执行, ./ParseHeapDump.sh gpl-dump.hprof^Corg.eclipse.mat.api:suspects org.eclipse.mat.api:overview org.eclipse.mat.api:top_components

 

 等待一会儿执行完成会生成 三个zip的分析文件

把这个三个zipi文件可以分别解压放到nginx的上进行访问,或者copy出来放到window上直接打开index.html

 

 

window环境下下载的win的包,以下是win环境下的使用

下载成功解压后

运行MemoryAnalyzer.exe发现报错

需要使用jdk11以上的版本。

下载jdk11

Archived OpenJDK GA Releases

下载成功后,可是我并不想替换原来系统中的jdk8的环境,所以,此时可在MemoryAnalyzer.ini中配置vm的运行环境,-vm下内容为 下载的jdk11后解压后的bin目录javaw.exe 

再次运行  MemoryAnalyzer.exe

可以加载一个本地dump堆栈的文件进行分析。

 加载堆栈文件后的Overview

 此时可以看到 大对象占用的内存空间,以及饼状图左下角哪个线程运行的时候产生的

此时可以点击  Leak_Suspects 进一步查看详细分析信息

 这里基本可以分析出某个类某个方法调用会产生大量对象

 点击detail可以查看具体哪些对象占用大量空间

 list中装载的大量的LinkedHashmap占用大量空间


版权声明:本文为lr131425原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。