設定應用程式基準

基準化功能可讓您測試應用程式的效能。您可以定期執行基準以幫助分析和偵錯效能問題,並確保您不會在近期變更中引入回歸。

Android 提供兩種基準化程式庫和方法,可用來分析及測試應用程式中的各種情境:Microbenchmark 和 Macrobenchmark。

Microbenchmark

Microbenchmark 程式庫可讓您在迴圈中直接基準化應用程式程式碼。它旨在測量 CPU 作業,評估最佳情況效能 (及時 (JIT) 暖身、磁碟存取快取),您可以透過內部迴圈或特定熱函式查看。程式庫只能測量可獨立直接呼叫的程式碼。

如果您的應用程式需要處理複雜的資料結構,或者有在應用程式執行期間多次呼叫的大量運算演算法,則非常適合使用基準化功能。您也可以測量使用者介面的某些部分。例如,您可以測量 RecyclerView 項目繫結的成本、加載版面配置花費的時間,或是從效能角度看對 View 類別的版面配置和測量的需求有多大。

不過,您無法評估基準化情況對整體使用者體驗的幫助如何。在某些情況下,基準化作業無法告訴您是否會改善資源浪費或應用程式啟動時間等瓶頸。因此,請務必先使用 Android 分析器辨識這些瓶頸。找到要調查和最佳化的程式碼後,基準化迴圈就能快速簡單地重複執行,產生雜訊更少的結果,讓您專注於一個方面的改善。

Microbenchmark 程式庫只會回報應用程式的相關資訊,而不是整個系統的相關資訊。因此,它最適合分析特定於應用程式的情況的效能,而非可能涉及整個系統問題的情況。

Macrobenchmark

Macrobenchmark 程式庫可測量大部分使用者互動情形,例如啟動、與使用者介面互動以及動畫。不同於 Microbenchmark 程式庫,Macrobenchmark 可讓您直接控制您要測試的效能環境。您可以控制編譯、啟動及停止應用程式以直接測量實際的應用程式啟動或捲動,而不只是特定的 JIT 編譯的熱函式,並快取所有磁碟存取。

程式庫會透過測試應用程式 (用測試建構),從外部插入事件並監控結果。因此,在編寫基準時,您不需要直接呼叫應用程式程式碼,而是以使用者方式在應用程式中瀏覽。

基準化程式庫比較

Microbenchmark Macrobenchmark
功能 測量各個功能 測量高級別進入點或互動 (例如活動啟動或捲動清單)
範圍 CPU 作業的程序中測試 完整應用程式的程序外測試
速度 快速疊代 (通常不到 10 秒) 中速疊代 (超過一分鐘)
追蹤 可選的方法取樣和追蹤 結果包含剖析追蹤記錄
最低 API 版本 14 23