使用MAT的命令行工具分析hprof文件

Eclipse Memory Analyzer

对于MAT这个专业的内存泄漏分析工具,大家应该都比较熟悉,用起来很方便,只需要打开Eclipse,然后把jmap或者jvm dump出来的文件拖到Eclipse里面,就会自动分析,然后以页面的形式展示出来结果。

在结果里面可以看到内存总体情况、泄漏嫌疑对象、以及所有对象的内存占用情况。这对我们找到内存溢出、内存泄漏的元凶帮助很大。

但是对于生产环境,总会遇到这样的问题,dump出来的文件8g以上,比较大,自己的台式机或者笔记本的内存根本不够用。况且Eclipse启动起来,就占1个G的内存。

下载MAT

以前一般是直接以插件的形式安装到Eclipse里面,其实MAT是可以独立运行的,我们需要到官网下载独立包。

这里写图片描述

选择Linux(x86_64/GTK 2)版本,下载下来,然后到自己的服务器上进行解压,执行:

unzip mat.zip

配置MAT

解压之后,需要修改mat的配置文件,打开MemoryAnalyzer.ini文件,修改-Xmx的值,使大于hprof文件的大小,建议是其2倍大小。

-startup
    plugins/org.eclipse.equinox.launcher_1.2.0.v20110502.jar
    --launcher.library
    plugins/org.eclipse.equinox.launcher.gtk.linux.x86_64_1.1.100.v20110505
    -vmargs
    -Xms16g
    -Xmx16g

执行分析命令

执行如下命令会输出泄漏嫌疑对象的分析结果,这个结果是比较全面的。

./ParseHeapDump.sh ../today_heap_dump/jvm.hprof org.eclipse.mat.api:suspects

还支持另外两个分析结果:

org.eclipse.mat.api:overview
org.eclipse.mat.api:top_components 

出结果的速度很快,8G的文件,大概10来分钟出结果。

运行后,会生成如下的几个压缩包,解压后打开其中的html页面即可看到结果。

这里写图片描述

  • 1
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值