1. 程式人生 > >Android】開發優化之——調優工具:dump hprof file 檢視記憶體情況,找到記憶體洩露,androidhprof

Android】開發優化之——調優工具:dump hprof file 檢視記憶體情況,找到記憶體洩露,androidhprof

如何用MAT來分析,前提是Android開發和測試的工具安裝完整,SDK,Eclipse:
1.開啟Eclipse
2.選擇 Help->Install New Software;
3.在Work with中新增站點:download.eclipse.org/mat/1.0/update-site/(這個地址可能會變化,但是新的地址可以在官方網站上找到:www.eclipse.org/mat/downloads.php )
4.生成.hprof檔案:插入SD卡(Android機器很多程式都需要插入SD卡),並將裝置連線到PC,在Eclipse中的DDMS中選擇要測試的程序,然後點選Update Heap 和Dump HPROF file兩個Button。
.hprof 檔案會自動儲存在SD卡上,把 .hprof 檔案拷貝到PC上的\ android-sdk-windows\tools目錄下。這個由DDMS生成的檔案不能直接在MAT開啟,需要轉換。
執行cmd開啟命令列,cd到\ android-sdk-windows\tools所在目錄,並輸入命令hprof-conv xxxxx.hprof yyyyy.hprof,其中xxxxx.hprof為原始檔案,yyyyy.hprof為轉換過後的檔案。轉換過後的檔案自動放在android-sdk-windows\tools 目錄下。
OK,到此為止,.hprof檔案處理完畢,可以用來分析記憶體洩露情況了。
5.開啟MAT:
在Eclipse中點選Windows->Open Perspective->Other->Memory Analysis
6.匯入.hprof檔案
在MAT中點選 File->Open File,瀏覽到剛剛轉換而得到的.hprof檔案,並Cancel掉自動生成報告,點選Dominator Tree,並按Package分組,選擇自己所定義的Package 類點右鍵,在彈出選單中選擇List objects->With incoming references。

這時會列出所有可疑類,右鍵點選某一項,並選擇Path to GC Roots->exclude weak/soft references,會進一步篩選出跟程式相關的所有有記憶體洩露的類。據此,可以追蹤到程式碼中的某一個產生洩露的類。
 

相關推薦

Android開發優化——調工具dump hprof file 檢視記憶體情況找到記憶體洩露androidhprof

如何用MAT來分析,前提是Android開發和測試的工具安裝完整,SDK,Eclipse: 1.開啟Eclipse 2.選擇 Help->Install New Software; 3.在Work with中新增站點:download.eclipse.org/mat/1.0/update-site/(這

開發優化——調工具dump hprof file 檢視記憶體情況找到記憶體洩露androidhprof

 雖說知道一般性的開發android應用需要注意的問題,可是也有水平參差不齊的情況,特別是維護程式碼,如果記憶體佔用大,記憶體溢位嚴重,又怎麼解決呢?  --  通過DDMS把heap抓出來分析 1、開啟DDMS 2、選中需要檢視的程式,並且點選Update Hea

Android開發優化——調工具TrackView,Method Profiling

TraceView介面資訊介紹 TraceView介面包括時間面板和方法面板 (1) 時間面板(Timeline Panel) 時間面板展示了每個執行緒的執行情況,其中的[1]main即為ui主執行緒。 移動到某個位置可以檢視該點對應的方法的執行資訊,點選方法面板則會選中相應的方法。 可以左鍵按住不放選中區域

Android開發優化的強引用、軟引用、弱引用的使用

本文轉載至:http://www.jianshu.com/p/8488079a939b 引言 早在JDK1.2,Java就把物件的引用分為四種級別,從而使程式能更加靈活的控制物件的生命週期。這四種級別由高到低依次為:強引用、軟引用、弱引用和虛引用。 但是平時我們的程式碼中似乎很

android電量優化Battery Historian工具使用

前幾天寫了關於androidAPP效能優化總結的文章,還沒有看的話可以看一下,這文章提到了電量優化,android耗電分析所用到的工具battery-historian,這裡做一個總結. 在 Android5.0 以前,在應用中測試電量消耗比較麻煩,也不準確,5.0 之後專門引入了一個獲取裝置上

《Oracle PL/SQL例項精講》學習筆記26——優化PL/SQL(第一部分——PL/SQL調工具

本章內容: 1. PL/SQL調優工具(使用PL/SQL剖析器API、使用跟蹤API、使用PL/SQL層次式剖析器) 2. PL/SQL優化級別 3. 子程式內聯   程式碼如下: 1. 檢視PLSQL_DEBUG引數 SQL> show parame

【轉載JVM調工具的使用(jps,jstat,jstack,jmap,jhat)

文章目錄 一,jps命令 二 jstat命令 1 類載入統計: 2 編譯統計 3 垃圾回收統計 三 jstack命令 四 jmap 原文連結:http://bl

Android系統性能調工具介紹

經作者授權,發表Tieto某青年牛的一篇《程式設計師》大作。Android系統性能調優工具介紹在軟體開發過程中,想必很多讀者都遇到過系統性能問題。而解決系統性能問題的幾個主要步驟是:測評:對系統進行大量

Xcode8.3.2 效能調工具 Instruments TimeProfiler -- 揪出頁面卡頓利器的使用方法

廢話不多說,直接上乾貨:(切記兩點:1、真機除錯。2、應用程式執行一定要釋出配置而不是除錯配置) 第一步:找到 TimeProfiler (兩種方法) 1、開啟專案 2、開啟專案 第二步:TimeProfiler 配置 第三步:找到耗時的函式 從圖片中可以看出最耗時的是-

Android逆向基礎筆記—Android NDK開發2Windows下的gcc手動編譯(交叉連編譯)和利Linux Ubuntu系統下的交叉工具鏈手動編譯

一、交叉工具鏈 這些工具都在NDK的路徑下:E:\Android\android-ndk-r13\toolchains\arm-linux-androideabi-4.9\prebuilt\windo

[Android] Android開發優化——使用軟引用和弱引用

Java從JDK1.2版本開始,就把物件的引用分為四種級別,從而使程式能更加靈活的控制物件的生命週期。這四種級別由高到低依次為:強引用、軟引用、弱引用和虛引用。這裡重點介紹一下軟引用和弱引用。如果一個物件只具有軟引用,那麼如果記憶體空間足夠,垃圾回收器就不會回收它;如果記憶體

[Android] Android開發優化——對介面UI的優化(2)

在一個應用程式中,一般都會存在多個Activity,每個Activity對應著一個UI佈局檔案。一般來說,為了保持不同視窗之間的風格統一,在這些UI佈局檔案中,幾乎肯定會用到很多相同的佈局。如果我們在每個xml檔案中都把相同的佈局都重寫一遍,一個是程式碼冗餘,可讀性

Android效能調工具TraceView介紹 (六)

Android效能優化系列彙總已完成,包括: Android自帶的TraceView堪比java的效能調優工具visualvm執行緒檢視,可以方便的檢視執行緒的執行情況,某個方法執行時間、呼叫次數、在總體中的佔比等,從而定位效能點。1、生成日誌

Perf -- Linux下的系統性能調工具第 1 部分【轉

出了 結構 頻率 重復 左右 points return time das 轉自:https://www.ibm.com/developerworks/cn/linux/l-cn-perf1/ Perf 簡介 Perf 是用來進行軟件性能分析的工具。 通過它,應用程序

Android開發乾貨-技術分享AndResGuard資源混淆的使用

AndResGuard是微信團隊的開源專案,它的作用就是將apk中的資原始檔如layout等檔名進行混淆處理,增加逆向難度。 1.下載AndResGuard 2.下載完成後,修改配置檔案,此處因

Android開發優化——對介面UI的優化(3)

本篇博文主要討論一下複雜介面中常用的一種技術——介面延遲載入技術。 有時候,我們的頁面中可能會包含一些佈局,這些佈局預設是隱藏的,當用戶觸發了一定的操作之後,隱藏的佈局才會顯示出來。比如,我們有一個Activity用來顯示好友的列表,當用戶點選Menu中的“匯入”以後

java效能優化權威指南---java效能調工具

目錄 1、作業系統的工具和分析 Unix上,sar(system accounting report) vmstat、iostat、prstat Windows上,typeperf 1)CPU使用率(vmstat)  CPU

Android性能優化ListView緩存機制

ner data b2c 模式 ret hold ren state err 要想優化ListView首先要了解它的工作原理,列表的顯示須要三個元素:ListView、Adapter、顯示的數據。 這裏的Adapter就是用到了適配器模式,無論傳入的是什麽View在Li

Android性能優化利用Rxlifecycle解決RxJava內存泄漏

Android 前言: 其實RxJava引起的內存泄漏是我無意中發現了,本來是想了解Retrofit與RxJava相結合中是如何通過適配器模式解決的,結果卻發現了RxJava是會引起內存泄漏的,所有想著查找一下資料學習一下如何解決RxJava引起的內存泄漏,就查到了利用Rx

使用Android Studo開發NDKGradle的配置(能debug C代碼)

lose service ng- services lba new import dev android 配置: 用的版本號是AS1.5(也能夠嘗試更高版本號)。 Gradle地址是distributionUrl=https\://services.gradle.org