您的位置:首页 > 其它

MAT分析

2016-03-14 16:30 232 查看
MAT全称为Memory Analzyer Tool,即一个Java Heaper分析器,可以用来分析内存泄露和减少内存消耗,它是eclipse的一个插件,可独立运行,具体分析步骤:

1. 工具下载,下载地址:https://www.eclipse.org/mat/downloads.php;根据不同的操作系统选择不同的版本下载安装;

2. 打印dump日志信息:使用jmap命令打印dump日志,命令参数及格式如下:

jmap -dump:format=b,file=heap.bin <pid>

format参数为文件格式,此处b表示为二进制;file为文件名称,pid为当前jvm进程号;

在自动部署系统中可以用过“JVM统计监测工具”打印dump日志;

1. MAT参数调整:jmap-dump命令产生的二进制文件大小与系统JVM的堆内存配置有关,一般生产环境上的堆内存-xms、-xmx等参数设置比较大,如2G/4G/8G不等,所以在利用MAT打开jmap文件时也需要很大的内存空间,可以修改安装目录下的MemoryAnalyzer.ini配置文件中的-xmx来进行调整;

一般改配置文件格式如下:

-startup

plugins/org.eclipse.equinox.launcher_1.3.0.v20140415-2008.jar

--launcher.library

plugins/org.eclipse.equinox.launcher.win32.win32.x86_64_1.1.200.v20140603-1326

-vmargs

-Xmx5500m

如果MAT内存不足,在打开jmap文件时会报错,具体信息为:

An internal erroroccurred during: "Parsing heap dump from “\*\*\*.log”Java heap space

1. 日志文件分析:打开MAT,点击界面左上角的“File à Open Heap Dump”,选择二进制dump日志,点击确认后开始进行分析,这个过程可能比较慢,在2G的堆内存配置下,大概需要2~3分钟,待分析完之后会生成很多临时文件,具体情况见下图:

一般如果出现内存泄露,MAT会给出相应的“LeakSuspects”,可以选择“Leaks”查看具体的内存泄露点,新窗口“leakhunter”下包括Overview、Problem Suspect1等,其中Problem Suspect1~N表示可能存在的几个内存泄露点;

参考文章:/content/2772082.html
http://blog.csdn.net/aaa2832/article/details/19419679 http://docs.oracle.com/javase/7/docs/technotes/tools/share/jmap.html
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: