android hprof,Android Hprof 分析

Android Studio 中的 HProf静态分析

HProf 在 Android Studio 中的展示详解,基于我对其的理解,我将其根据 heap,count,size,其他将其分成了 4 个层次。

665a081289e7e319976d0e7762ba46ea.png

第一层 Heap分类

Heap 共分为:

zygote heap: 与 android zygote 进程共享的 heap

image heap: 与系统共享的 heap

app heap: 应用本身的 heap

第二层 引用次数 total count,heap count

total count : 表示该类在以上 3 个 Heap 中被引用的次数之和,也即等于上面三个 Heap 的 heap count 之和

heap count : 表示该类在当前 Heap 中被引用的次数

第三层 各种size的含义, sizeof,shallow size,retained size,dominatin size

sizeof : 类的大小,相当于 c 语言中的 sizeof 运算符。不过,在 android/java 中,就是各成员变量加起来之和了。一个空对象的大小为 8 ,因为其继承的 Object 大小就是 8。再比如,String的sizeof 就是 16,其大小就是自己的两个整型成员变量的大小加上Object的大小。另外,一个引用其大小本身是 4 ,基本数据类型的大小就是 Java 中的定义的,数组没有大小。

shallow size : 表示该类或者类的对象的所占用的实际内存大小。类的 shallow size 等于该类的实例的 shallow size 大小之和

retained size : 表示该类的所有实例的 dominatin size 之和。当一次 GC并发生内存回收后,能被虚拟机回收的最大内存大小。只能说是最大,不能完全回收掉,因为可能有些类还会被别的类引用到,就不能进行回收。

dominatin size:表示该对象能管理到的内存大小,一般等于该对象的shallow size 与该对象的属性内容所占用的内存大小之和。

第四层 instance,level,Refrence Tree

instance : 表示类所对应的实例的个数

level : 引用级数

Refrence Tree : 引用的树形链,跟 TraceView 中的差不多

上面是关于 hprof 的表态分析,而 hprof 的文件协议如下

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值