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

shallow heap和retained heap

在解释这两个名词之前,需要说明一下:JAVA对象大小=对象头+实例数据+对齐填充 shallow heap为对象自身占用的内存大小,不包括它引用的对象的大小 shallow heap 非数组类型的对象的...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+数组中各基本数据类型大小之和

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

    Java内存溢出OOM使用Mat分析

    Shallow Heap (浅层堆)表示:对象实际占用的堆大小(不包含其它引用对象的大小) Retained Heap(保留堆)表示:对象实际占用+所包含引用对象的大小 Shallow Heap计算方法...在本次案例中:Shallow Heap占用112448字节,Retained Heap占用337296字节....当前案例未打开指针压缩: 14053个引用地址占用内存大小: `14053*8=112424`,`Shallow Heap`占用`112448`字节,还有24字节明显就是res容器本身占用的内存大小....bytes of overhead + 4 bytes length + 4 bytes padding = 24 bytes Retained Heap计算方法 Retained Heap Size=Shallow...Heap Size+引用对象实际大小 Shallow Heap 已经计算出来了 引用对象的实际大小:本案例中,由于UserTest是一个空的对象,所以每个UserTest实例对象就只占用16字节的对象头

    58410
    领券