JVM:MAT内存泄漏检测原理

文章目录

一、介绍

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

  • 支配树中对象本身占用的空间称之为浅堆(Shallow Heap)。
  • 支配树中对象的子树就是所有被该对象支配的内容,这些内容组成了对象的深堆(Retained Heap),也称为保留集(Retained Set)。深堆的大小表示该对象如果可以被回收,能释放多大的空间
  • MAT就是根据支配树,从叶子节点向根节点遍历,如果发现深堆的大小超过了整个堆内存的一定比例阈值,就会将其标记成内存泄漏的"嫌疑对象。
相关推荐
Dylan的码园14 小时前
从软件工程师看计算机是如何工作的
java·jvm·windows·java-ee
百锦再16 小时前
HashMap、Hashtable、TreeMap异同深度详解
jvm·spring boot·struts·spring cloud·缓存·kafka·tomcat
好学且牛逼的马1 天前
从“大师杰作”到“并发基石”:JUC(java.util.concurrent)发展历程与核心知识点详解(超详细·最终补全版)
jvm
知识即是力量ol1 天前
Java 虚拟机:JVM篇
java·jvm·八股
Zzz 小生1 天前
LangChain Tools:工具使用完全指南
jvm·数据库·oracle
wuqingshun3141591 天前
什么是浅拷贝,什么是深拷贝,如何实现深拷贝?
java·开发语言·jvm
专注前端30年2 天前
【Java高并发系统与安全监控】高并发与性能调优实战:JVM+线程池+Redis+分库分表
java·jvm·redis
星火开发设计2 天前
序列式容器:deque 双端队列的适用场景
java·开发语言·jvm·c++·知识
Anastasiozzzz3 天前
深入理解JIT编译器:从基础到逃逸分析优化
java·开发语言·jvm
小同志003 天前
JVM 类加载
jvm·jvm类加载