內(nèi)容:
Shallow Heap和Retained Heap
一、Shallow Heap和Retained Heap
Shallow Heap:只包含自己堆內(nèi)的元素對象,不包含引用的對象;
Shallow Size:對象自身占用的內(nèi)存大小,不包括它引用的對象。針對非數(shù)組類型的對象,它的大小就是對象與它所有的成員變量大小的總和。當然這里面還會包括一些java語言特性的數(shù)據(jù)存儲單元。針對數(shù)組類型的對象,它的大小是數(shù)組元素對象的大小總和。
Retained Heap:既包含自身堆的元素對象,也直接或間接引用到的對象;
Retained Size:Retained Size=當前對象大小+當前對象可直接或間接引用到的對象的大小總和。(間接引用的含義:A->B->C, C就是間接引用),換句話說,Retained Size就是當前對象被GC后,從Heap上總共能釋放掉的內(nèi)存。不過,釋放的時候還要排除被GC Roots直接或間接引用的對象。他們暫時不會被被當做Garbage。
|