翻譯的官方文章 原文連接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