【Android 内存管理中的 Shallow heapRetained heap】学向勤中得,萤窗万卷书。这篇文章主要讲述Android 内存管理中的 Shallow heapRetained heap相关的知识,希望能为你提供帮助。
所有包含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逆向 Android虚拟机
- android中常用的注解说明
- 支付宝App支付配置
- Android 简易音乐播放器
- ioc初步理解 简单实用autofac搭建mvc三层+automapper=》ioc(codeFirst)
- 人际交往的秘诀,萌颜短视频特效,一对一直播短视频APP崛起
- android设置NoTITLe
- Android - Android Studio 3.0去掉方法参数提示
- Cordova - 彻底搞定安卓中的微信支付插件!