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的区别相关推荐

  1. Eclipse MAT 里面的SHALLOW HEAP和RETAINED HEAP是什么意思?

    原文在这里: Eclipse MAT 里面的SHALLOW HEAP和RETAINED HEAP是什么意思? MAT是一款非常强大的JVM内存映像分析工具,对分析内存相关的问题非常有用,MAT报告中对 ...

  2. GC之二--GC是如何回收时的判断依据、shallow(浅) size、retained(保留) size、Deep(深)size...

    回到问题"为何会内存溢出?". 要回答这个问题又要引出另外一个话题,既什么样的对象GC才会回收? 一.对象存活方式判断方法 在上一篇文章<GC之一--GC 的算法分析.垃圾收 ...

  3. MAT工具学习,incoming reference和outgoing reference,Shallow Heap和Retained Heap

    MAT工具学习 incoming reference和outgoing reference Shallow Heap和Retained Heap 常用工具 一般思路 incoming referenc ...

  4. Java内存分析工具MAT(Memory Analyzer Tool)的介绍与使用

    详细介绍了Java内存分析工具MAT(Memory Analyzer Tool)的常见使用方法,MAT可以帮助Java程序员快速进行内存分析,定位问题. MAT(Memory Analyzer Too ...

  5. java.lang.IllegalStateException: 启动子级时出错

    java.lang.IllegalStateException: 启动子级时出错 at org.apache.catalina.core.ContainerBase.addChildInternal( ...

  6. java要频繁调用容器时_Java最常见的200+面试题及自己梳理的答案--面试必备(一)...

    昨天在今日头条上看到一份所谓经常面别人的TL梳理的面试题,看着比较完善,但是,没有对应的答案,自己看着研究学习了下,顺带梳理下答案.主要包括以下模块:Java基础.容器.多线程.反射.对象拷贝.Jav ...

  7. Java中重写equals()方法时注意点

    Java中重写equals()方法时注意点 一直说,重写一个对象的equals()方法时我们必须重写HashCode()方法,但是如果我们不重写呢?会有什么影响呢? 首先看一下,什么情况下我们需要重写 ...

  8. Dlib学习笔记:解决dlib array2d转 OpenCV Mat时颜色失真

    Dlib学习笔记:解决dlib array2d转 OpenCV Mat时颜色失真 [尊重原创,转载请注明出处] http://blog.csdn.net/guyuealian/article/deta ...

  9. 解决IntelliJ IDEA报错:调用方法[manageApp]时发生异常java.lang.IllegalStateException: 启动子级时出错

    解决IntelliJ IDEA报错:调用方法[manageApp]时发生异常java.lang.IllegalStateException: 启动子级时出错 问题描述:   笔者将一个在 Tomcat ...

  10. java当数值超过byte时_java试题及答案

    java试题及答案 java是面向对象的语言,那么java认证有哪些常见试题呢?下面跟yjbys小编一起来看看最新java认证考试试题及答案,仅供大家参考! 1.一个".java" ...

最新文章

  1. 【Java进阶】Eureka讲解与应用
  2. C# MD5加密解密帮助类
  3. x265-确定slice type-3
  4. rfid4-写成platform驱动
  5. Linux查看主板的相关信息
  6. python中的continue和break
  7. [蓝桥] 基础练习 十进制转十六进制 (java)
  8. easyUI datagrid 重复发送URL请求
  9. B/S系统间跨域单点登录设计思路
  10. UML2.0详细教程(附示例)
  11. cs61a 2018spr hw05 的一个题目
  12. 深入浅出hibernate_夏昕_hibernate对储存过程的处理
  13. java excel导入jsp_导入导出EXCEL数据(jsp+ssh)
  14. 洛谷P3835 【模板】可持久化平衡树(FHQ Treap)
  15. 【zblog】zba解压工具
  16. win10忘记密码_电脑忘记密码没关系,这招教你简单轻松改密码
  17. 高精度极限电阻的测试技巧
  18. 今日头条如何运营,今日头条怎么运营好,今日头条运营技巧
  19. Allegro PCB编辑界面功能全面介绍图文教程及视频演示
  20. .Net 7里的函数.Ctor和.CCtor是干啥用的呢?你知道吗

热门文章

  1. 登录微软账户后远程桌面连接提示用户名错误
  2. 如何给外行解释云计算
  3. Android中Gson使用,flutter调用原生sdk
  4. 达芬奇密码 第三十章
  5. supermap 点云_SuperMap新一代三维GIS技术体系
  6. centos安装NVI驱动
  7. AS3中常用到的公式
  8. android 卸载残留代码,完全卸载AndroidStudio(示例代码)
  9. [渝粤教育] 西南科技大学 语文教材教法 在线考试复习资料2021版
  10. 强力回击 跨境侵权(TRO)卖家通过诉讼大获全胜,还净赚数万?