首页 > 编程知识 正文

android hprof,Android Hprof 分析

时间:2023-05-05 15:14:35 阅读:164607 作者:1852

Android Studio中的HProf静态分析

HProf在Android Studio上的展示很详细,基于我的理解,我将其分为heap、count、size和其他四个等级。

第1层标题分类

Heap共计分为以下几类。

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

image heap:与系统共享的heap

app heap:APP应用程序本身的头

第二层参照次数total count,heap count

total count :表示类等于这三个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 :引用的树链与TraceView几乎相同

以上是关于hprof的表达分析,hprof的文件协议如下

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。