浅堆
表示一个对象结构所占用的大小(对象头+实例数据+对齐填充,不包括内部引用 对象大小)
深堆
表示一个对象被 GC 回收后,可以真实释放的内存大小(保留空间)对象
对象
对象=对象头 + 实例数据 + 对齐填充
对象头
标记部分包括 hashcode、gc 分代年龄、锁状态标志、线程持有锁、偏向线程锁id,偏向时间戳,这一部分在32位机器上为 4 byte,64 位机器上为 8byte
分析内存分析
1.用jmp拿到进程的dump文件
2.用MAT工具导入dump文件分析堆内存溢出。
网友评论