- 移動App性能評測與優化
- TMQ專項測試團隊
- 449字
- 2019-01-03 21:41:02
1.2.2 Dalvik Heap的常見問題
隨著測試的執行,隨之而來的就是一大堆產生的數據。對產生的數據進行分析,找出可能存在的問題,以及問題可能的原因是接下來的重點。
由于大部分Android應用是以Java代碼開發的,所以Dalvik Heap內存出現問題也是最常見的情況。常見的現象有以下幾種:
·隨著功能的反復執行,Heap內存一直在持續增長。這種情況通常是出現了內存泄漏,這種情況最適合用LeakCanary等泄漏檢查工具進行白盒測試分析。
·代碼執行時出現了頻繁的GC, Heap Alloc內存大幅度波動。這種情況通常是分配了許多臨時變量或數組,隨后又被迅速回收,這種情況在確定具體場景后適合使用Heap Viewer / Allocation Tracker等工具來查看具體分配的對象。
·每次啟動應用后,Heap內存相比以前版本穩定增長。這種情況通常出現在啟動后待機或使用某功能后,可能是由新功能及代碼改動引入的固定內存增長。這種情況適合獲取Heap Dump后進行多版本或功能使用前后的對此,能夠迅速找到增長原因。
·Heap Alloc變化不大,但進程的Dalvik Heap Pss(Proportional Set Size)內存明顯增加。這種情況比較少見,是由于分配了大量小對象造成的內存碎片,在后面的章節里會詳細講解,具體內容請見下一節。