天天看點

移動App性能測評與優化1.2.2 Dalvik Heap的常見問題

<b>1.2.2 dalvik heap的常見問題</b>

随着測試的執行,随之而來的就是一大堆産生的資料。對産生的資料進行分析,找出可能存在的問題,以及問題可能的原因是接下來的重點。

由于大部分android應用是以java代碼開發的,是以dalvik

heap記憶體出現問題也是最常見的情況。常見的現象有以下幾種:

随着功能的反複執行,heap記憶體一直在持續增長。這種情況通常是出現了記憶體洩漏,這種情況最适合用leakcanary等洩漏檢查工具進行白盒測試分析。

代碼執行時出現了頻繁的gc,heap alloc記憶體大幅度波動。這種情況通常是配置設定了許多臨時變量或數組,随後又被迅速回收,這種情況在确定具體場景後适合使用heap viewer / allocation tracker等工具來檢視具體配置設定的對象。

每次啟動應用後,heap記憶體相比以前版本穩定增長。這種情況通常出現在啟動後待機或使用某功能後,可能是由新功能及代碼改動引入的固定記憶體增長。這種情況适合擷取heap dump後進行多版本或功能使用前後的對此,能夠迅速找到增長原因。

heap alloc變化不大,但程序的dalvik heap pss(proportional set size)記憶體明顯增加。這種情況比較少見,是由于配置設定了大量小對象造成的記憶體碎片,在後面的章節裡會詳細講解,具體内容請見下一節。

繼續閱讀