為應用程式進行基準測試

基準測試可用來檢查及監控應用程式效能。您可以定期執行基準測試,協助分析效能問題並偵錯,確保近期異動不會造成迴歸。

Android 提供 Macrobenchmark 和 Microbenchmark 這兩種基準測試程式庫和方法,可分析及測試不同的應用程式情況。

Macrobenchmark

Macrobenchmark 程式庫可測量規模較大的使用者互動,例如啟動作業、UI 操作和動畫。您可以利用這個程式庫直接控制想測試的效能環境,例如控制編譯作業,以及啟動和停止應用程式,方便直接測量實際的應用程式啟動或捲動情形。

Macrobenchmark 程式庫會利用測試期間建構的測試應用程式,從外部插入事件並監控結果。因此,您編寫基準測試時,不需要直接呼叫應用程式程式碼,只要像使用者一樣在應用程式中瀏覽即可。

Microbenchmark

利用 Microbenchmark 程式庫,您可以在迴圈中直接對應用程式程式碼執行基準測試。這個程式庫可測量用來評估最佳情況效能的 CPU 工作,例如為及時 (JIT) 編譯作業暖機、快取磁碟存取權等,您或許可透過內部迴圈或特定熱函式查看這類工作。這個程式庫只能測量可單獨直接呼叫的程式碼。

如果應用程式需要處理複雜的資料結構,或是會在應用程式執行期間多次呼叫需要大量運算的演算法,或許就適合執行基準測試。您也可以測量 UI 的某些部分。舉例來說,您可以測量 RecyclerView 項目繫結成本、版面配置的加載時間,或從效能角度瞭解 View 類別的版面配置和測量傳遞需求量。

不過,您無法衡量接受基準測試評估的情況對整體使用者體驗的改善效果。在某些情況下,基準測試無法說明能否改善卡頓或應用程式啟動時間等瓶頸。因此,請務必先使用 Android 分析器找出這些瓶頸。找到要調查和最佳化的程式碼後,基準測試迴圈就能更簡單又快速地重複執行,產生雜訊較少的結果,讓您專注改善一個方面。

Microbenchmark 程式庫只會回報應用程式的資訊,不會回報整個系統的資訊。因此,這個程式庫最適合分析應用程式本身情況的效能,不適合分析可能涉及整體系統問題的情況。

基準測試程式庫比較

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