码迷,mamicode.com
首页 > 移动开发 > 详细

Android 内存管理中的 Shallow heap Retained heap

时间:2018-11-16 17:21:45      阅读:219      评论:0      收藏:0      [点我收藏+]

标签:大小   roo   虚线   对象   under   bubuko   roi   间接   http   

所有包含Heap Profling功能的工具(MAT,Yourkit,JProfiler,TPTP等)都会使用到两个名词,一个是Shallow heap Size,另一个是 Retained heap Size. 

shallow heap:

Shallow heap size =对象自身占用的内存大小,不包括它引用的对象。 还会包括一些java语言特性的数据存储单元。
                 对于数组对象,它的大小是数组元素对象内存的总和。

Retained heap:

Retained heap size = 当前对象大小+当前对象可直接或间接引用到的对象的大小总和。
          (间接引用的含义:A->B->C, C 就是间接引用)
           Retained Size就是当前对象被GC后,从Heap上总共能释放的内存大小。
          释放大小需要减去被GC Roots直接或间接引用的对象。

 

技术分享图片

 

假如虚线不存在:

shallow size 缩写:ss

retained size 缩写:rs

GC root 直接引用了A,B对象

ssA = rsA  同理D,E对象也如此

rsB =  ssB + ssD + ssC + ssE

rsC= ssC+ ssE

 虚线如果存在:

rsB = ssD + ssC

rsC= ssC

 

Android 内存管理中的 Shallow heap Retained heap

标签:大小   roo   虚线   对象   under   bubuko   roi   间接   http   

原文地址:https://www.cnblogs.com/polo/p/9969835.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!