翻译的官方文章 原文连接html
当你在Android Studio中使用Android Monitor里的Memory Monitor工具监视内存使用状况时,能够把Java堆快照转储到Android HPROF文件中(译者注:与标准的java hprof文件格式标准不同)。HPROF查看工具会列出类、类的实例和实例的引用树,以此来帮助你跟踪内存的使用状况,找出内存泄漏的地方。HPROF最初是由J2SE支持的一种二进制堆转储格式。java
(本文出处:http://www.jianshu.com/p/7d958959cf33)android
Java堆展现以下信息:浏览器
可是,HPROF文件只是展现了某一时刻Java堆的使用状况,若是你须要了解某段时间内Java堆使用状况的, 你须要经过分析不一样时间点生成的HPROF文件来找出其中的变化。HPROF分析工具能够自动分析出如下两种类型的问题:app
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 | 所选实例所支配的内存大小 |
若是你点击了Analyzer Tasks就会展现HPROF分析工具,界面以下图右边板块:翻译
用HPROF分析工具,能够检测到泄漏的activities、分析出重复定义的字符串。htm
要想查看Java堆的快照,必需要通过下面两步:对象
堆转储后,Android studio会自动保存HPROF文件,以便你再次查看。用HPROF查看工具查看HPROF文件的步骤以下:
如下步骤是典型工做流程:
用HPROF分析工具能够检测到泄漏的activities、分析出重复定义的字串。使用HPROF文件分析工具标准步骤以下:
在HPROF文件查看工具中,点击表格的顶部,可让表格中数据升序或者将序排列。
在HPROF文件查看工具中展现的部分项能够直接跳转到源码,右键项目点击Jump to Source就能够在代码编辑器中打开源码。
Android Studio中你能够重命名、定位或者删除HPROF文件,你也能够把他转成标准的HPROF文件格式来使用其余的分析工具分析。
在Android Studio中重命名的HPROF文件仍然会出如今Captures窗口中。
Captures窗口HPROF文件列表中选择你想操做的文件,右键点击Rename
你能够快速找到Android Studio存放HPROF文件的位置。在Captures窗口HPROF文件列表中选择你想操做的文件,右键点击show in explorer,Android Studio会打开系统文件浏览器定位到文件存放的位置。
注意:Android Studio没法在Captures窗口显示那些被移动别的路径下去的HPROF文件,若是想显示请使用File > Open。同理,不要使用系统的文件浏览器来重命名HPROF文件。
Captures窗口HPROF文件列表中选择你想操做的文件,右键点击Delete,Android Studio会从Captures窗口和硬盘上删除文件。
转化成标准的HPROF文件后可使用Android Studio以外的分析工具来分析。在Captures窗口HPROF文件列表中选择你想操做的文件,右键点击 Export to standard .hprof