内存泄露-Android Studio 生成Dump 的 HPROF 文件查看和分析工具

时间:2024-05-19 18:44:30

0. 文章参考

https://blog.****.net/rechanel/article/details/76578070

1. HPROF 文件 作用

HPROF查看工具会列出类、类的实例和实例的引用树,以此来帮助你跟踪内存的使用情况,找出内存泄漏的地方。

2. dump Hprof file

Android Studio 到导出 HPROF 文件步骤很简单,Moniter界面中点击 Dump Java Heap 即可

内存泄露-Android Studio 生成Dump 的 HPROF 文件查看和分析工具

3. HPROF文件查看工具的信息显示

名称 描述
Class Name 类名
Total Count 该类的实例总数
Heap Count 所选择的堆中该类的实例数量
Sizeof 单个实例所占空间大小(如果美国实例所占空间大小不一样,则显示0)
Shallow Size 堆里所有实例大小总和(Heap Count * Sizeof)
Retained Size 该类所有实例所支配的内存大小
Instance 具体实例
Reference Tree 所选实例的引用,以及指向该引用的引用
Depth GC 根节点到所选实例的最短路径的深度
Shallow Size 所选实例的大小
Dominating Size 所选实例所支配的内存大小

4. HPROF文件操作实例

4.1 打开 Capture 视图,选择 HPROF 文件

内存泄露-Android Studio 生成Dump 的 HPROF 文件查看和分析工具

4.2 查看 堆信息

  1. App heap 当前 app 使用的堆
  2. Image heap 当前 app 在硬盘上的内存映射
  3. Zygot heap -zygot 复制时继承的库、运行时类和常量的数据库。zygote 空间设备启动时创建,从不分配这里的空间

内存泄露-Android Studio 生成Dump 的 HPROF 文件查看和分析工具

4.2 查看视图类型

  1. Class List View
  2. Package Three View

内存泄露-Android Studio 生成Dump 的 HPROF 文件查看和分析工具

5. HPROF文件分析工具中分析数据(重要)

用HPROF分析工具可以检测到泄漏的activities、分析出重复定义的字串。步骤如下

内存泄露-Android Studio 生成Dump 的 HPROF 文件查看和分析工具