HProf 在 Android Studio 中的展現詳解,基於我對其的理解,我將其根據 heap,count,size,其餘將其分紅了 4 個層次。java
Heap 共分爲:android
zygote heap: 與 android zygote 進程共享的 heap數組
image heap: 與系統共享的 heap併發
app heap: 應用自己的 heapapp
total count : 表示該類在以上 3 個 Heap 中被引用的次數之和,也即等於上面三個 Heap 的 heap count 之和dom
heap count : 表示該類在當前 Heap 中被引用的次數spa
sizeof : 類的大小,至關於 c 語言中的 sizeof 運算符。不過,在 android/java 中,就是各成員變量加起來之和了。一個空對象的大小爲 8 ,由於其繼承的 Object 大小就是 8。再好比,String的sizeof 就是 16,其大小就是本身的兩個整型成員變量的大小加上Object的大小。另外,一個引用其大小自己是 4 ,基本數據類型的大小就是 Java 中的定義的,數組沒有大小。.net
shallow size : 表示該類或者類的對象的所佔用的實際內存大小。類的 shallow size 等於該類的實例的 shallow size 大小之和對象
retained size : 表示該類的全部實例的 dominatin size 之和。當一次 GC併發生內存回收後,能被虛擬機回收的最大內存大小。只能說是最大,不能徹底回收掉,由於可能有些類還會被別的類引用到,就不能進行回收。blog
dominatin size:表示該對象能管理到的內存大小,通常等於該對象的shallow size 與該對象的屬性內容所佔用的內存大小之和。
instance : 表示類所對應的實例的個數
level : 引用級數
Refrence Tree : 引用的樹形鏈,跟 TraceView 中的差很少
上面是關於 hprof 的表態分析,而 hprof 的文件協議以下