如何檢測移動端 CPU 以及記憶體佔用率
阿新 • • 發佈:2019-02-04
月底的時候淘寶眾籌的 H5 接入到了支付寶錢包,上線前支付寶錢包就對效能提出了明確要求:即頁面靜態下 app 的 CPU 消耗要低於 10%。我面臨的第一個問題並不是如何優化,而是要如何便利地檢視 CPU 的佔用率。CPU 佔用率的有效分析對於效能優化是至關重要的。因此,本文並不會講移動端 CPU 佔用率的優化,而是講其“前戲”——如何檢視移動端的 CPU 以及記憶體佔有率。
Android ADB 命令檢視
- 安裝 JDK,下載並安裝
-
安裝 SDK:
- 下載地址,下載後的壓縮包,可以解壓在任意目錄下,不需要安裝操作。
- 進入 android-sdk-macoxs/tools 資料夾,雙擊 Android 檔案啟動 Android SDK Manager, 如下圖
- 選擇列表中你需要的平臺,並安裝。
- 配置環境變數
開啟終端,home 目錄下開啟 .bash_profile 檔案並寫入
export PATH=${PATH}:/Users/{{sdk 存放目錄}}/android-sdk-macosx/tools export PATH=${PATH}:/Users/{{sdk 存放目錄 }}/android-sdk-macosx/platform-tools |
- 手機連線電腦開啟 USB 除錯模式,進入 adb shell
-
檢視 CPU 佔用率
-
檢視 CPU 佔用排名前 5 的程式並間隔 3 秒輸出
top -m 5 -t -d 3
-
檢視 CPU 佔用排名前 5 的程式並間隔 3 秒輸出
- 根據程序名檢視其 CPU 佔用率 `top -d 3| grep com.taobao.trip`(例如檢視阿里旅行的 CPU 佔用率))
-
檢視記憶體使用情況
-
adb shell dumpsys meminfo <package_name>
或adb shell dumpsys meminfo <package_id>
-
Android Studio 自帶 CPU 和記憶體檢測功能
Android Studio 有自帶的 CPU 和記憶體檢測功能
-
檢測是否安裝 Java 虛擬機器 JDK ,若沒有則進行
javac -version
|
- 點選上圖標註 1 ,在標註 2 中選擇要除錯的手機,標註 3 中選擇要檢測的應用程序,例如 ‘com.eg.android.AlipayGphone’ 即支付寶。點選標註 4 即進行記憶體的監控,標註 5 即是對CPU的監控。
- 記憶體的監控如下:
- CPU 監控如下:
Eclipse 之 DDMS
Eclipse 可以通過 DDMS 檢測記憶體,但是要在 Eclipse 中檢測 CPU 佔用需要安裝外掛,我試用了外掛 APT 發現並不好用,因此就不介紹了。下面介紹在 Eclipse 中通過 DDMS 檢測記憶體使用情況。
-
手機連線電腦開啟 USB 除錯模式,並開啟 Eclipse
-
點選工具欄 Window -> Open Perspective -> Other -> DDMS,如下圖:
- 標註 1 區域為當前虛擬機器上的程式列表,選擇要檢測的程式,點選標註 3 給改程式設定 heap Updates,在標註 2 Heap 檢視中點選 Cause GC 就可以看到該程式的記憶體使用情況。
結語
希望這篇文章能夠減少同學們在檢測 CPU 及記憶體上花費的時間,從而有更多的時間去研究如何優化的問題。