Android Hprof 分析

Android Studio 中的 HProf靜態分析

HProf 在 Android Studio 中的展現詳解,基於我對其的理解,我將其根據 heap,count,size,其餘將其分紅了 4 個層次。java

第一層 Heap分類

Heap 共分爲:android

zygote heap: 與 android zygote 進程共享的 heap數組

image heap: 與系統共享的 heap併發

app heap: 應用自己的 heapapp

 

第二層 引用次數 total count,heap count

total count : 表示該類在以上 3 個 Heap 中被引用的次數之和,也即等於上面三個 Heap 的 heap count 之和dom

heap count : 表示該類在當前 Heap 中被引用的次數spa

 

第三層 各類size的含義, sizeof,shallow size,retained size,dominatin size

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

instance : 表示類所對應的實例的個數

level : 引用級數

Refrence Tree : 引用的樹形鏈,跟 TraceView 中的差很少

 

上面是關於 hprof 的表態分析,而 hprof 的文件協議以下

http://www.javashuo.com/article/p-xbxuqtrj-dk.html

相關文章
相關標籤/搜索