码迷,mamicode.com
首页 > 其他好文 > 详细

Shallow vs. Retained Heap

时间:2014-12-15 09:06:52      阅读:249      评论:0      收藏:0      [点我收藏+]

标签:style   blog   http   ar   os   sp   java   on   2014   

        Shallow Heap和Retained Heap这两个名词在Java内存分析时经常遇到。本博文是Eclipse Memory Analyzer中关于Shallow Heap和Retained Heap帮助文档的翻译。

        Shallow Heap是被一个对象消费的内存。在一个对象中,引用属性需要32或者64bits(根据OS体系结构),Integer属性需要4 bytes, Long属性需要8 bytes等等。根据Heap Dump的格式,这个大小可能会被调整(例如,对齐到8字节等等)到一个更有利于VM实际内存消费的模型。

        X的Retained Set是指当X被垃圾回收时,所有会被GC回收的对象集合。

        X的Retained Heap是指X的Retained Set中所有对象的Shallow Size和,例如因为X而存活的内存。

        一般地说,一个对象的Shallow Heap是在Heap中这个对象的大小,而同一个对象的Retained Size是指当这个对象被垃圾回收时,将被释放的Heap内存总和。

        从Leading Set角度来说,Retained Set是因为Leading Set变成不可达而被释放对象的集合。Leading Set可能是一个特定类的所有对象,或者被一个特定类加载器加载的所有类的对象,又或者是任意对象的组合。Retained Set包括了Leading Set中的对象和所有仅能通过Leading set中对象访问到的对象。Retained Size是在Retained Set中所有对象的总heap大小。

bubuko.com,布布扣

Shallow vs. Retained Heap

标签:style   blog   http   ar   os   sp   java   on   2014   

原文地址:http://blog.csdn.net/jeff_fangji/article/details/41927251

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!