java retained size_使用MAT时的Shallow Size和 Retained Size的区别
https://blog.csdn.net/e5945/article/details/7708253
Shallow Size
对象自身占用的内存大小,不包括它引用的对象。
针对非数组类型的对象,它的大小就是对象与它所有的成员变量大小的总和。当然这里面还会包括一些java语言特性的数据存储单元。
针对数组类型的对象,它的大小是数组元素对象的大小总和。
Retained Size
Retained Size=当前对象大小+当前对象可直接或间接引用到的对象的大小总和。(间接引用的含义:A->B->C, C就是间接引用)
换句话说,Retained Size就是当前对象被GC后,从Heap上总共能释放掉的内存。
不过,释放的时候还要排除被GC Roots直接或间接引用的对象。他们暂时不会被被当做Garbage。
看图理解Retained Size
上图中,GC Roots直接引用了A和B两个对象。
A对象的Retained Size=A对象的Shallow Size
B对象的Retained Size=B对象的Shallow Size + C对象的Shallow Size
这里不包括D对象,因为D对象被GC Roots直接引用。
如果GC Roots不引用D对象呢?
此时,
B对象的Retained Size=B对象的Shallow Size + C对象的Shallow Size + D对象的Shallow Size
java retained size_使用MAT时的Shallow Size和 Retained Size的区别相关推荐
- Eclipse MAT 里面的SHALLOW HEAP和RETAINED HEAP是什么意思?
原文在这里: Eclipse MAT 里面的SHALLOW HEAP和RETAINED HEAP是什么意思? MAT是一款非常强大的JVM内存映像分析工具,对分析内存相关的问题非常有用,MAT报告中对 ...
- GC之二--GC是如何回收时的判断依据、shallow(浅) size、retained(保留) size、Deep(深)size...
回到问题"为何会内存溢出?". 要回答这个问题又要引出另外一个话题,既什么样的对象GC才会回收? 一.对象存活方式判断方法 在上一篇文章<GC之一--GC 的算法分析.垃圾收 ...
- MAT工具学习,incoming reference和outgoing reference,Shallow Heap和Retained Heap
MAT工具学习 incoming reference和outgoing reference Shallow Heap和Retained Heap 常用工具 一般思路 incoming referenc ...
- Java内存分析工具MAT(Memory Analyzer Tool)的介绍与使用
详细介绍了Java内存分析工具MAT(Memory Analyzer Tool)的常见使用方法,MAT可以帮助Java程序员快速进行内存分析,定位问题. MAT(Memory Analyzer Too ...
- java.lang.IllegalStateException: 启动子级时出错
java.lang.IllegalStateException: 启动子级时出错 at org.apache.catalina.core.ContainerBase.addChildInternal( ...
- java要频繁调用容器时_Java最常见的200+面试题及自己梳理的答案--面试必备(一)...
昨天在今日头条上看到一份所谓经常面别人的TL梳理的面试题,看着比较完善,但是,没有对应的答案,自己看着研究学习了下,顺带梳理下答案.主要包括以下模块:Java基础.容器.多线程.反射.对象拷贝.Jav ...
- Java中重写equals()方法时注意点
Java中重写equals()方法时注意点 一直说,重写一个对象的equals()方法时我们必须重写HashCode()方法,但是如果我们不重写呢?会有什么影响呢? 首先看一下,什么情况下我们需要重写 ...
- Dlib学习笔记:解决dlib array2d转 OpenCV Mat时颜色失真
Dlib学习笔记:解决dlib array2d转 OpenCV Mat时颜色失真 [尊重原创,转载请注明出处] http://blog.csdn.net/guyuealian/article/deta ...
- 解决IntelliJ IDEA报错:调用方法[manageApp]时发生异常java.lang.IllegalStateException: 启动子级时出错
解决IntelliJ IDEA报错:调用方法[manageApp]时发生异常java.lang.IllegalStateException: 启动子级时出错 问题描述: 笔者将一个在 Tomcat ...
- java当数值超过byte时_java试题及答案
java试题及答案 java是面向对象的语言,那么java认证有哪些常见试题呢?下面跟yjbys小编一起来看看最新java认证考试试题及答案,仅供大家参考! 1.一个".java" ...
最新文章
- 【Java进阶】Eureka讲解与应用
- C# MD5加密解密帮助类
- x265-确定slice type-3
- rfid4-写成platform驱动
- Linux查看主板的相关信息
- python中的continue和break
- [蓝桥] 基础练习 十进制转十六进制 (java)
- easyUI datagrid 重复发送URL请求
- B/S系统间跨域单点登录设计思路
- UML2.0详细教程(附示例)
- cs61a 2018spr hw05 的一个题目
- 深入浅出hibernate_夏昕_hibernate对储存过程的处理
- java excel导入jsp_导入导出EXCEL数据(jsp+ssh)
- 洛谷P3835 【模板】可持久化平衡树(FHQ Treap)
- 【zblog】zba解压工具
- win10忘记密码_电脑忘记密码没关系,这招教你简单轻松改密码
- 高精度极限电阻的测试技巧
- 今日头条如何运营,今日头条怎么运营好,今日头条运营技巧
- Allegro PCB编辑界面功能全面介绍图文教程及视频演示
- .Net 7里的函数.Ctor和.CCtor是干啥用的呢?你知道吗