本文参考于
https://blog.csdn.net/yincheng886337/article/details/50517375
仅用于个人学习总结,如有侵权,联系删除
Shallow Size及Retained Size
Shallow Size = 对象本身所占内存大小
Retained Size =( 对象本身 + 仅被该对象直接引用或间接引用对象)的Shallow SizeRetained Size == 该对象被GC回收的内存总和
举例以下Reference chain关系图
image.png
左图,obj1的Retained Size = (obj1 + obj2 + obj3)的Shallow Siz
右图,obj1的Retained Size = (obj1 + obj2 + obj3 + obj4)的Shallow Size该图的额外说明:
从obj1入手,蓝色节点代表仅被该对象直接或间接引用,白色节点还包括被GC Roots引用,即使断了obj1到obj3的Reference chain(引用链),obj1被GC回收,obj3也不会被回收
(GC会回收不与GC Roots的Reference chain相连的对象)
image.png
Heap Size
堆的大小,当资源增加,堆空间增加,超过上限(如64M)会被杀掉
Allocated Size
堆中已分配大小,即App实际占用内存大小
网友评论