1. 程式人生 > >APP效能測試--記憶體測試

APP效能測試--記憶體測試

一、記憶體佔用

對於智慧手機而言,記憶體大小是固定的;因此,如果單個app的記憶體佔用越小,手機上可以安裝執行的app就越多;或者說app的記憶體佔用越小,在手機上執行就會越流暢。所以說,記憶體佔用的大小,也是考量app效能的一個重要指標。

二、測試項

  • 空負荷————app已經在後臺執行,但是使用者沒有使用;

back靜置後臺

home靜置後臺

放在應用主頁面

  • 中負荷————app在前臺執行,使用者進行了少量操作;
  • 滿負荷————使用者持續頻繁大量操作,app接近飽和狀態執行。
  • 應用記憶體峰值情況
  • 應用記憶體洩露情況
  • 應用是否常駐記憶體
  • 壓力測試後的記憶體使用情況

然而,除了第一種情況,其它兩種的主觀性很強,不是很容易區分。正常產品測試的時候,只要驗證後臺執行(5~10分鐘為宜)和使用者持續頻繁大量操作(10~15分鐘為宜)這兩種情況下就可以了。

三、記憶體測試方案

【1】 手工測試---adb命令測試記憶體

adb shell dumpsys meminfo packagename -d(檢視當前應用的變化)

(adb shell dumpsys meminfo |grep packagename >/address/mem.txt )

  • Native/Dalvik 的 Heap 資訊

具體在上面的第一行和第二行,它分別給出的是JNI層和Java層的記憶體分配情況,如果發現這個值一直增長,則代表程式可能出現了記憶體洩漏。

home到後臺一段時間,比如10分鐘,然後看數值是否有變化

  • Total 的 PSS 資訊

這個值就是你的應用真正佔據的記憶體大小,通過這個資訊,你可以輕鬆判別手機中哪些程式佔記憶體比較大了。

  • Objects的兩個資訊

在進入一個介面之前檢視一遍Activity和View的數量,在退出這個介面之後再檢視一遍Activity和View的數量,對比進入前和進入後Activity和View數量的變化情況,如果有差異,則說明存在記憶體洩露(在使用命令檢視Activity和View的數量之前,記得手動觸發GC)

【2】自動化測試---Python指令碼

原理:同樣使用adb命令來查詢記憶體消耗,通過monkey自動操作,結合Python查詢結果。