使用 CPU 分析器查看 CPU 活動

最佳化應用程式的 CPU 使用率可以帶來許多好處,譬如能讓使用者有更快、更順暢的使用體驗,對裝置的電池續航力也有幫助。

利用 CPU 分析器即可一邊和應用程式互動,一邊即時查看應用程式的 CPU 使用情況和執行緒活動,或是查看方法追蹤、函式追蹤及系統追蹤等記錄內的詳細資料。

CPU 分析器會按照您選擇的記錄設定記錄及顯示詳細資訊:

  • 系統追蹤:擷取細緻的詳細資料,以便您查看應用程式和系統資源的互動方式。
  • 方法及函式追蹤:您可以檢視在應用程式中,每個執行緒在特定時間所執行的方法 (Java) 或函式 (C/C++),以及執行每個方法或函式時所消耗的 CPU 資源。您也可以透過方法及函式追蹤辨識呼叫端受呼叫者。呼叫端是指會叫用其他方法或函式的方法或函式,而受呼叫者則是其他方法或函式所叫用的對象。您可以用此項資訊判斷哪種方法或功能過於頻繁地叫用特定高耗費資源工作,將應用程式的程式碼最佳化,使其避免進行不必要的工作。

    記錄方法追蹤記錄時,您可以選擇取樣檢測記錄方式。記錄函式追蹤記錄時僅能使用取樣記錄方式。

若要詳細瞭解如何使用並選擇各個追蹤記錄選項,請參閱「選擇記錄設定」。

CPU 分析器總覽

如要開啟 CPU 分析器,請按照下列步驟操作:

  1. 依序選取「View」>「Tool Windows」>「Profiler」,或按一下工具列中的「Profile」

    如果畫面上顯示「Select Deployment Target」對話方塊,請選擇要部署應用程式的裝置,以便進行剖析。如果您已透過 USB 連線裝置,但清單中未列出該裝置,請確認您已啟用 USB 偵錯

  2. 按一下 CPU 時間軸中任一處,即可開啟 CPU 分析器。

開啟 CPU 分析器後,系統會立即開始顯示應用程式的 CPU 使用率及執行緒的活動情形。畫面應該會與圖 1 類似。

圖 1. CPU 分析器中的時間軸。

如圖 1 所示,CPU 分析器的預設檢視畫面包括以下時間軸:

  1. 事件時間軸:顯示應用程式中您的應用程式在生命週期中轉換不同狀態時的活動,並展示使用者和裝置互動的情形,包括螢幕旋轉事件。若想瞭解如何在執行 Android 7.1 (API 級別 25) 以下版本的裝置上啟用活動時間軸,請參閱「啟用進階剖析」。
  2. CPU 時間軸:顯示應用程式即時 CPU 使用率,以和總可用 CPU 時間之間的百分比呈現,以及應用程式正在使用的執行緒總數。時間軸也會顯示其他程序的 CPU (如系統程序或其他應用程式) 使用率,您可以跟自己的應用程式使用率進行比較。您可以把滑鼠沿著時間軸水平方向移動,即可檢視過往 CPU 使用率資料,
  3. 執行緒活動時間軸:列出每個屬於應用程式程序的執行緒,並以下方顏色顯示時間軸上的滑動。記錄追蹤記錄之後,您可以點選時間軸上的執行緒,即可在追蹤窗格內檢視相關資料。
    • 綠色:執行緒活躍中,或已可使用 CPU。這表示這條執行緒正在執行中,或可以執行的狀態。
    • 黃色:執行緒已啟用,但正在等待 I/O 操作 (例如磁碟或網路 I/O) 完成,然後才能完成工作。
    • 灰色:執行緒處於休眠狀態,未消耗任何 CPU 時間。當執行緒需要某資源的存取權,但尚未取得的時候,有時就會是這個狀態。執行緒可能是進入了自願休眠狀態,或是核心讓執行緒休眠,等到取得必要資源後才會使用。

    CPU 分析器也會回報執行緒的 CPU 使用率,其中應用程式程序 (如 JDWPProfile SaverStudio:VMStatsStudio:PerfaStudio:Heartbeat,不過執行緒活動時間軸上顯示的確切名稱可能會有不同) 會加上 Android Studio 和 Android 平台。Android Studio 會回報這類資料,以便您辨識應用程式的程式碼實際的執行緒活動和 CPU 使用率。