首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

shallow heap和retained heap

heap retained heap大小为对象本身和其所引用的对象大小之和 换个说法就是当前对象被GC后,从Heap上总共能释放掉的内存,强调是GC后能释放的。...A对象的Retained Size=A对象的Shallow Size B对象的Retained Size=B对象的Shallow Size + C对象的Shallow Size 这里不包括D对象,因为D...对象被GC Roots直接引用 23456.jpeg 此时,B对象的Retained Size=B对象的Shallow Size + C对象的Shallow Size + D对象的Shallow Size...非数组类型的对象的Retained Size Retained Size=当前对象shallow_size+当前对象可直接或间接引用到的对象的shallow_size总和。...shallow_size之和 数组的元素类型为基本数据类型 Retained Size=数组对象的shallow_size+数组中各基本数据类型大小之和

86400
您找到你想要的搜索结果了吗?
是的
没有找到

Android Studio Profiler Memory (内存分析工具)的简单使用及问题

281540022720_.pic_hd.jpg 可以看到就总量而言Shallow Size基本能真是反应Java堆内存,而Retained Size却明显要高出不少, 因为Retained Size统计总内存的时候...可以看到Head本身的Retained Size是120M ,Head->next 是80M,最后一个ListItem40MClass对象是40M,因为每个对象的Retained Size除了包括自己的大小...,比如Depth:从任意 GC 根到所选实例的最短hop数,一个对象的Retained Size只会统计Depth比自己大的引用,而不会统计小的,这个可能是为了避免重复统计而引入的,但是其实Retained...如何看Profiler的Memory图 第一:看整体Java内存使用看shallowsize就可以了 第二:想要看哪些对象占用内存较多,可以看Retained Size,不过看Retained Size...总结 总体Java内存使用看shallow size retained size只是个参考,不准确,存在各种重复统计问题 FinalizerReference retained size 大小极其不准确

3.1K30

MAT入门到精通(一)

Retained Heap Shallow heap是一个对象本身占用的堆内存大小。一个对象中,每个引用占用8或64位,Integer占用4字节,Long占用8字节等等。...Retained set,对于某个对象X来说,它的Retained set指的是——如果X被垃圾收集器回收了,那么这个集合中的对象都会被回收,同理,如果X没有被垃圾收集器回收,那么这个集合中的对象都不会被回收...Retained heap,对象X的Retained heap指的时候它的Retained set中的所有对象的Shallow si的和,换句话说,Retained heap指的是对象X的保留内存大小,...如果leading set中的对象都不可达,那么这个leading set对应的retained set中的对象就会被回收。...C、E、D、F、G、H都无法被回收,因此A和B的Retained set是A、B、C、E、D、F、G、H。

1.3K20

利用MAT玩转JVM内存分析(一)

Retained Heap Shallow heap是一个对象本身占用的堆内存大小。一个对象中,每个引用占用8或64位,Integer占用4字节,Long占用8字节等等。...Retained set,对于某个对象X来说,它的Retained set指的是——如果X被垃圾收集器回收了,那么这个集合中的对象都会被回收,同理,如果X没有被垃圾收集器回收,那么这个集合中的对象都不会被回收...Retained heap,对象X的Retained heap指的时候它的Retained set中的所有对象的Shallow si的和,换句话说,Retained heap指的是对象X的保留内存大小,...如果leading set中的对象都不可达,那么这个leading set对应的retained set中的对象就会被回收。...C、E、D、F、G、H都无法被回收,因此A和B的Retained set是A、B、C、E、D、F、G、H。

2.7K51

如何使用Eclipse内存分析工具定位内存泄露

Heap #0, Retained Heap #1, Retained Heap #2 这3列分别对应: 第一个dump文件占用的retained size, 第二个dump文件占用的retained...size , 第三个dump文件占用的retained size 通过Retained Heap的变化趋势可以看出: 红框 圈出的是内存连续增长的对象, 可以通过右边红框的retained heap...Retained Size Retained Size=当前对象大小+当前对象可直接或间接引用到的对象的大小总和。...因为这里我们比较的是支配树, 所以按照retained heap倒序排列, 从左到右依次为: retained heap #0 → retained heap #1 → retained heap #2...点击"with outgoing references"后逐层展开第一个对象内部的引用关系(以Retained Heap倒序,主要是看retained size排在前面的对象), 如下: ?

1.9K10
领券