2013年4月29日 星期一

[Android]Google I/O Memory Leak 筆記 2 - Tools


此篇為 Google I/O Memory Leak 筆記 1 - 觀念 的續篇

HighLight
1. 初步的的 Memory Leak 偵測是看你的 LogCat
紅色圈起來的地方是 System Alive Object , 看起來隨著時間不斷的加大, 並且沒有減少的跡象, 因此判定有 Memory Leak

2. 所以就要把 Memory Heap dump 下來使用 Eclipse Memory Analyzer Tool (MAT) 進行下一步分析。
     到 DMMS 中 進行 Dump 。 (參考下圖 的icon)
 


3. 使用 MAT 
    MAT 分 Eclipse 的 plug-in 或是 stand alone 的。 演講者是使用 stand alone 版本。可能使用上 UI 方面易於閱讀吧! 不過, 如果 dump 下來得 hprof file 要讓 stand - alone 版本使用需要再轉換過。 轉換方式 如上圖所示, 需使用 hprof-conv tools。
  3.1 MAT 的下載
   MAT download

3.2 hprof 的轉換
      hprof 需要使用 在Android SDK\ tools 裡 hprof-conv.exe 來轉換
      一般做法是到 cmd line 裡, CD 到 tools 然後執行 hprof-conv dump.hprof dump-conv2.hprof
     覺得有點麻煩所以我弄了一個 .bat 檔


set curr_dir=%cd%
chdir /D C:\Android\tools
hprof-conv F:\Android\temp\dump.hprof F:\Android\temp\dump-conv2.hprof
chdir /D %curr_dir%


  3.3 Speaker 推薦 MAT 常用的 View
        1. Histogram
        2. Dominator Tree   (Weak Reference 通常可以不用看)
    MAT 的使用是另一門學問, 就先不在這詳敘。



 
 

沒有留言:

張貼留言