mat 释放_MAT 分析堆内存快照

MAT 是基于 Eclipse 开发的 Java 堆内存快照分析工具。

下载地址:

https://www.eclipse.org/mat/downloads.php

a69871141201b51aaebbb8a38fd50f7b.png

如果你分析的堆内存快照文件比较大,需要修改配置文件 MemoryAnalyzer.ini,我本地 -Xmx4096m,即最大堆内存给的 4G。

这几个视图使用较多:
  • 打开文件默认显示概要

  • class 实例数列表

  • 支配树视图,根据包路径分组 + 深堆逆序,就能查到占用大量内存的对象

  • QQL,像查 SQL 一样查实例信息

  • 线程视图

  • Leak Suspects,内存泄漏猜测;也可以使用 Leak Identification - Find Leaks

几个核心概念:
  • 显示对象时,outgoing references 指对象的引出

  • 显示对象时,incoming references 指对象的引入

  • path to GC Roots,显示对象的 GC Root 对象

  • Shallow Heap(浅堆),对象本身的内存占用

  • Retained Heap(深堆),对象被垃圾回收后,能够释放的内存大小

  • Retained Set(保留集),上述被回收对象集合

449e43a832bbb3bffa85949887af8fbb.png

2565825252a7a4797a4e0d4f50595a31.png

2872b144b4af4e3138213243abf58bcf.png

8472767c2a13f1ac08271b17dc46d357.png

25c1d27159924fbf140a117f1589ee14.png

d98de1a5dad9c54dbc39151ead9e1186.png

以上截图,是某报表工具缓存导致内存泄漏的排查记录

OQL 语句详见:

http://tech.novosoft-us.com/products/oql_book.htm

098caae2d3e4547032efcf23e44bd8b2.png 博客网站    |   Java面试题
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值