發布時間:2020-07-17
當android應用實現了新功能后,準備發布版本前,必須進行性能測試以確定沒有性能問題,內存使用情況便是其中必須要測試的性能之一。由于內存組成的復雜性,并沒有簡單通用的方法能夠發現所有的內存問題。有時候因為問題比較明顯,就真的發現了問題,但是對于較為成熟的軟件,并不是那么容易發現內存問題。現在從內存測試流程、內存測試方法、內存占用的評判建議三個方面總結如下,希望能提升android內存測試的有效性。
一、內存測試流程
1)代碼:保證沒有附加多余的Log和調試用組件
2)測試場景:新開發的功能,只需要對該功能進行性能測試,因此測試場景包括該功能的開啟前、運行、結束后等測試點;另一類是整體性能,考察應用的常見場景,在綜合使用情況下的性能指標,測試場景應當包括啟動后待機、切換到后臺、執行主要功能以及反復執行各功能。在兩類場景中,重點關注:
①包含了圖片顯示的界面;
②網絡傳輸大量數據;
③需要緩存數據的場景
3)場景轉換成用例:選取了測試場景之后,針對內存測試的特點設計用例,對APP內存變化作對比;將測試場景轉化為腳本,長時間運行泛靈犀功能,比較操作前后內存的變化來評估測試APP的內存
4)執行:將采集到的數據以圖形的形式展現,觀察內存的波動
5)分析:分析內存時重點關注如下幾個字段:
Native/Dalvik 的 Heap ,分別給出的是JNI層和Java層的內存分配情況,如果發現這個值一直增長,
則代表程序可能出現了內存泄漏;
Total 的 PSS 信息,代表應用真正占據的內存大小,通過它可以判別手機中哪些程序占內存比較大了。
二、內存占用評判建議
通過性能監控工具進行性能評測時,得出的結果不知道內存cpu波動是否在預期之內,不懂得如何評估。經過了解,可以從以下幾個方面考慮:
1)首先與有該功能的以往版本和競品做對比,得出內存的差值
比如對一個APP每個版本都做內存占用評測,在對比與以往版本。也會對競爭對手在內存上的消耗量,通過內存的差值可以較為直觀地判斷出該版本的內存占用情況。
2)若之前版本和競品都無該功能,可將應用的基本功能消耗的內存作為參考
3)內存有無泄漏
判斷內存是否泄漏的方法是:在APP測試過程中是否存在因為內存不足導致的應用crash;內存是否存在持續上漲的情況。針對上圖泛靈犀主動情況下的內存占用,可從內存有無泄漏角度分析。
4)內存峰值是否在單個應用所允許的最大值之內
最大值可參考:手機硬件配置;系統所允許的最大值;相比類似應用的峰值。在手機的設置、用用程序管理器、應用程序信息中可以看到應用所占用的手機內存大小。若某個功能的內存峰值小于該應用所占內存,基本是符合預期的。
推薦閱讀:
您的信息已成功提交!
我們的客服人員稍后會與您聯系