1. 程式人生 > >如何檢測移動端 CPU 以及記憶體佔用率

如何檢測移動端 CPU 以及記憶體佔用率

月底的時候淘寶眾籌的 H5 接入到了支付寶錢包,上線前支付寶錢包就對效能提出了明確要求:即頁面靜態下 app 的 CPU 消耗要低於 10%。我面臨的第一個問題並不是如何優化,而是要如何便利地檢視 CPU 的佔用率。CPU 佔用率的有效分析對於效能優化是至關重要的。因此,本文並不會講移動端 CPU 佔用率的優化,而是講其“前戲”——如何檢視移動端的 CPU 以及記憶體佔有率。

Android ADB 命令檢視

  • 安裝 JDK,下載並安裝
  • 安裝 SDK:
    • 下載地址,下載後的壓縮包,可以解壓在任意目錄下,不需要安裝操作。
    • 進入 android-sdk-macoxs/tools 資料夾,雙擊 Android 檔案啟動 Android SDK Manager, 如下圖

image

- 選擇列表中你需要的平臺,並安裝。  
- 配置環境變數  
   開啟終端,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

image

  • 檢視 CPU 佔用率
    • 檢視 CPU 佔用排名前 5 的程式並間隔 3 秒輸出 top -m 5 -t -d 3
      (-m 最大數;-t 顯示程序名;-d重新整理間隔),如下圖:

image

- 根據程序名檢視其 CPU 佔用率 `top -d 3| grep com.taobao.trip`(例如檢視阿里旅行的 CPU 佔用率))

image

  • 檢視記憶體使用情況
    • adb shell dumpsys meminfo <package_name>adb shell dumpsys meminfo <package_id>

image

Android Studio 自帶 CPU 和記憶體檢測功能

Android Studio 有自帶的 CPU 和記憶體檢測功能

  • 檢測是否安裝 Java 虛擬機器 JDK ,若沒有則進行 
    下載並安裝
    ;若已安裝,則檢測版本號,低於 6 則不可用,檢測方法
javac -version

image

  • 點選上圖標註 1 ,在標註 2 中選擇要除錯的手機,標註 3 中選擇要檢測的應用程序,例如 ‘com.eg.android.AlipayGphone’ 即支付寶。點選標註 4 即進行記憶體的監控,標註 5 即是對CPU的監控。
  • 記憶體的監控如下:

image

  • CPU 監控如下:

image

Eclipse 之 DDMS

Eclipse 可以通過 DDMS 檢測記憶體,但是要在 Eclipse 中檢測 CPU 佔用需要安裝外掛,我試用了外掛 APT 發現並不好用,因此就不介紹了。下面介紹在 Eclipse 中通過 DDMS 檢測記憶體使用情況。

  • 手機連線電腦開啟 USB 除錯模式,並開啟 Eclipse

  • 點選工具欄 Window -> Open Perspective -> Other -> DDMS,如下圖:

image

  • 標註 1 區域為當前虛擬機器上的程式列表,選擇要檢測的程式,點選標註 3 給改程式設定 heap Updates,在標註 2 Heap 檢視中點選 Cause GC 就可以看到該程式的記憶體使用情況。

結語

希望這篇文章能夠減少同學們在檢測 CPU 及記憶體上花費的時間,從而有更多的時間去研究如何優化的問題。