2012年4月15日 星期日

[Tool] Memory Analyzer Tool (MAT)

雖然現在手機在硬體上的限制已不如從前,效能也大大提升,但手機中的空間還是不比在電腦上,所以如果不需過多的 effort,盡量降低空間的使用仍是必要的,使用者很容易就安裝過多的 App 或是同時操作多個 App,那麼一個 App 能降低一點使用量,我認為全部加起來多少會有點影響,但並不說要在一開始開發時便以效能為一取向,這樣反而有點綁手綁腳,本末倒置了,除非效能是需求之一。

尤其在某些 UI 的操作上,若系統進行 Garbage Collection,則會讓 User 在操作時感覺到頓頓的,另外,圖片上的使用,很容易使得 App Out Of Memory(OOM)(每個 App 被分配的空間是 16M),因此可利用 Eclipse plugin - MAT 來找出在 App 中是那裡使用了大量空間,而且沒有做適當的釋出。

Install
  • Install MAT Plugin on Eclipse - Install New Software
    • http://download.eclipse.org/mat/1.1/update-site/
  • 開啟關閉 App 約五次,來觀察是否有正確的建立與回收物件
  • Dump HPROF file by DDMS
  • Convert HPROF format by Android Tool, hprof-conv
  • Open eclipse perspective, Memory Analyer and File --> Open Heap Dump...

  • Shallow Heap
    • 物件本身的記憶體使用量。
  • Retained Heap
    • 指物件本身 + 參照過來的物件們所使用的記憶體使用量。

如何妥善的使用 bitmap
Displaying Bitmaps Efficiently


* Reference
- 使用MAT(記憶體分析)工具查看Memory Leak ***
- HOWTO: Debug Memory Leak in Android
- Download MAT
- Android Memory Usage
- Avoiding memory leaks - Romain Guy ***
- Attacking memory problems on Android ***

沒有留言:

張貼留言