JVM:MAT内存泄漏检测原理

文章目录

一、介绍

MAT提供了称为支配树(Dominator Tree)的对象图。支配树展示的是对象实例间的支配关系。在对象引用图中,所有指向对象B的路径都经过对象A,则认为对象A支配对象B。

  • 支配树中对象本身占用的空间称之为浅堆(Shallow Heap)。
  • 支配树中对象的子树就是所有被该对象支配的内容,这些内容组成了对象的深堆(Retained Heap),也称为保留集(Retained Set)。深堆的大小表示该对象如果可以被回收,能释放多大的空间
  • MAT就是根据支配树,从叶子节点向根节点遍历,如果发现深堆的大小超过了整个堆内存的一定比例阈值,就会将其标记成内存泄漏的"嫌疑对象。
相关推荐
m0_702036532 小时前
mysql如何通过索引减少行锁范围_mysql索引与加锁逻辑
jvm·数据库·python
qxwlcsdn2 小时前
如何用 IndexedDB 存储从 API 获取的超大列表并实现二级索引
jvm·数据库·python
2301_809244533 小时前
C#怎么使用协变和逆变 C#泛型中的in和out关键字协变逆变是什么意思怎么用【语法】
jvm·数据库·python
BING_Algorithm3 小时前
深入理解JVM垃圾回收
jvm·后端·面试
笨蛋不要掉眼泪4 小时前
Java并发编程:线程的创建和运行
java·开发语言·jvm
qxwlcsdn4 小时前
mysql在事务中执行DDL的后果_MySQL 8.0之前的限制
jvm·数据库·python
2401_884454155 小时前
如何防止SQL触发器导致性能下降_通过精简触发器逻辑
jvm·数据库·python
m0_596749095 小时前
Golang如何做Clean Architecture_Golang整洁架构教程【详解】
jvm·数据库·python
czt_java5 小时前
线程安全问题
java·开发语言·jvm
2401_867623985 小时前
如何管理应用锁_DBMS_LOCK申请自定义锁控制并发逻辑
jvm·数据库·python