HPROF Viewer and Analyzer

原文:HPROF Viewer and Analyzer

HPROF 是J2SE a binary heap dump format originally supported by J2SE

1. 为什么要查看Java Heap?

HPROF 分析器有助于发现以下问题:

  • GC Root 可以到达的已销毁的Activity
  • 目标程序有重复的String 值
    Dominator 位于树的顶端,如果你移除它,也会移除它的下属分支,所以这是释放内存的潜在方式

2. 理解 HPROF 查看器的显示

HPROF 查看器显示如下:
hprofviewer
工具显示了如下信息:

描述
Class Name 对这块内存负责的Java类
Total Count 实例总数(outstanding)
Heap Count 在选中堆中的实例个数
SizeOf 实例的大小(当前的,如果是变量则为0)
Shallow(浅) Size 在这堆所有实例的总大小
Retained Size 内存中该类所有实例占用的内存大小
Reference Tree 指向所选实例的引用,以及指向引用的引用
Depth 从任何的GCRoot跳到选定的实例的最短数目
Shallow Size 这个实例的大小
Instance 类的指定实例
Dominating(占用) Size 这个实例占用(dominating)的内存大小

3. 获取Java Heap 的快照

4. 查看保存的 HPROF 文件

Heap 菜单选项:

  • App Heap - 当前app使用的堆大小
  • Image heap - 磁盘上的当前应用程序的内存映射拷贝
  • Zygote heap - The common set of libraries and runtime classes and data that all apps are forked from. The zygote space is created during device startup and is never allocated into.

5. 在HPROF 查看器中深入 Heap Dump 数据

传统的工作模式:

  1. 在HPROF Viewer 中 选择一个类名
  2. 选中该类的一个实例
  3. 查看引用树
  4. 在一个条目上右键 Jump to source 或者 Go to instance

6. 在 HPROF 分析其中分析 Heap Dump 数据

你可以使用 HPROF Analyzer 来检测泄漏活动和查找重复字符串
在窗口右边

7. 分类排序 Heap Dump 数据

点击一列的头部

8. 显示Java 源代码

选中一个类或实例或者一个引用树上的条目后,右键, Jump to Source

9. 利用 HPROF 文件

可以导出为标准格式的HPROF文件

10. 其他

results matching ""

    No results matching ""