问题排查-jmap和MAT工具

发布时间:2020-05-29 21:46:16 作者:shayang88
来源:网络 阅读:1164

jmap常用命令

1、heap
命令:jmap -heap pid
描述:显示Java堆详细信息

问题排查-jmap和MAT工具
问题排查-jmap和MAT工具

2、histo[:live]
命令:jmap -histo:live pid
描述:显示堆中对象的统计信息
问题排查-jmap和MAT工具

3、dump:<dump-options>
命令:jmap -dump:format=b,file=heapdump.phrof pid
描述:生成堆转储快照dump文件。

以hprof二进制格式转储Java堆到指定filename的文件中。live子选项是可选的。如果指定了live子选项,堆中只有活动的对象会被转储。

问题排查-jmap和MAT工具

利用MAT分析dump文件

打开dump如图:

问题排查-jmap和MAT工具

重要功能

1、Histogram

Histogram,可列出每一个类的实例数,支持正则表达式查找,也可以计算出该类所有对象的retained size。

问题排查-jmap和MAT工具

Shallow Heap就是对象本身占用内存的大小,不包含其引用的对象内存,实际分析中作用不大。

Retained Heap值的计算方式是将RSet(当该对象被回收时那些将被GC回收的对象集合)中的所有对象大小叠加。或者说,因为X被释放,导致其它所有被释放对象(包括被递归释放的)所占的heap大小。

1、选择一个Class,右键选择List objects > with incoming references,在新页面会显示通过这个class创建的对象信息。
2、然后再选择一个对象,右键选择Path to GC Roots > ****,通常在排查内存泄漏的时候,我们会选择exclude all phantom/weak/soft etc.references,意思是查看排除虚引用/弱引用/软引用等的引用链,也就是强引用链。

2、Leak Suspects

问题排查-jmap和MAT工具
Leak Suspects 界面提示可能存在内存的泄露。
比方说大对象:
问题排查-jmap和MAT工具

通过Details可以查看具体问题的详情!

推荐阅读:
  1. android MAT使用
  2. covertTo 和 setTo无法转换mat像素类型

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

jmap mat

上一篇:mysql主从复制及读写分离(附安装包)

下一篇:左连接查询(LEFT JOIN)注意事项

相关阅读

您好,登录后才能下订单哦!

密码登录
登录注册
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》