基準測試可用來檢查及監控應用程式效能。您可以定期執行基準測試,協助分析效能問題並偵錯,確保近期異動不會造成迴歸。
Android 提供 Macrobenchmark 和 Microbenchmark 這兩種基準測試程式庫和方法,可分析及測試不同的應用程式情況。
Macrobenchmark
Macrobenchmark 程式庫可測量規模較大的使用者互動,例如啟動作業、UI 操作和動畫。您可以利用這個程式庫直接控制想測試的效能環境,例如控制編譯作業,以及啟動和停止應用程式,方便直接測量實際的應用程式啟動或捲動情形。
Macrobenchmark 程式庫會利用測試期間建構的測試應用程式,從外部插入事件並監控結果。因此,您編寫基準測試時,不需要直接呼叫應用程式程式碼,只要像使用者一樣在應用程式中瀏覽即可。
Microbenchmark
利用 Microbenchmark 程式庫,您可以在迴圈中直接對應用程式程式碼執行基準測試。這個程式庫可測量用來評估最佳情況效能的 CPU 工作,例如為及時 (JIT) 編譯作業暖機、快取磁碟存取權等,您或許可透過內部迴圈或特定熱函式查看這類工作。這個程式庫只能測量可單獨直接呼叫的程式碼。
如果應用程式需要處理複雜的資料結構,或是會在應用程式執行期間多次呼叫需要大量運算的演算法,或許就適合執行基準測試。您也可以測量 UI 的某些部分。舉例來說,您可以測量 RecyclerView
項目繫結成本、版面配置的加載時間,或從效能角度瞭解 View
類別的版面配置和測量傳遞需求量。
不過,您無法衡量接受基準測試評估的情況對整體使用者體驗的改善效果。在某些情況下,基準測試無法說明能否改善卡頓或應用程式啟動時間等瓶頸。因此,請務必先使用 Android 分析器找出這些瓶頸。找到要調查和最佳化的程式碼後,基準測試迴圈就能更簡單又快速地重複執行,產生雜訊較少的結果,讓您專注改善一個方面。
Microbenchmark 程式庫只會回報應用程式的資訊,不會回報整個系統的資訊。因此,這個程式庫最適合分析應用程式本身情況的效能,不適合分析可能涉及整體系統問題的情況。
基準測試程式庫比較
Macrobenchmark | Microbenchmark | |
---|---|---|
API 版本 | 23 以上版本 | 14 以上版本 |
功能 | 測量高階進入點或互動,例如啟動活動或捲動清單。 | 測量個別功能。 |
範圍 | 對完整應用程式的程序外測試。 | 對 CPU 工作的程序內測試。 |
速度 | 中等疊代速度,可能超過一分鐘。 | 快速疊代速度,通常不到 10 秒。 |
追蹤 | 結果包含分析追蹤記錄。 | 可選用方法取樣和追蹤功能。 |
為您推薦
- 注意:系統會在 JavaScript 關閉時顯示連結文字
- 建立基準設定檔 {:#create-profile-rules}
- JankStats 程式庫
- 評估應用程式效能總覽