使用下列檢測引數設定程式庫的行為。您可以將這些引數新增至 Gradle 設定,或是在透過指令列執行檢測時直接套用。如要為所有 Android Studio 和指令列測試執行作業設定這些引數,請將引數新增至 testInstrumentationRunnerArguments
:
android {
defaultConfig {
// ...
testInstrumentationRunnerArguments["androidx.benchmark.dryRunMode.enable"] = "true"
}
}
透過 Android Studio 執行基準測試時,也可以設定檢測引數。如要變更引數,請執行下列操作:
- 按一下「Edit」,然後點選所需設定,即可編輯執行設定。
圖 1. 編輯執行設定。 - 按一下「Instrumentation arguments」旁的
圖 2. 編輯檢測引數。
「More」圖示,即可編輯檢測引數。 - 按一下「Instrumentation Extra Params」下方的
圖 3. 新增必要的檢測引數。
「Add」圖示,新增必要的檢測引數。
如果要直接透過指令列呼叫,請使用 -P
android.testInstrumentationRunnerArguments.[name of the argument]
。
./gradlew :benchmark:connectedAndroidTest -P android.testInstrumentationRunnerArguments.androidx.benchmark.enabledRules=BaselineProfile
androidx.benchmark.compilation.enabled
可在每個基準測試疊代之間停用編譯功能。根據預設,系統會在每個基準測試之間重新安裝及重新編譯目標應用程式,藉此依循傳入 measureRepeated
的 CompilationMode
。舉例來說,如果想在執行測試套件前完整編譯目標應用程式,然後依照完整編譯的目標執行所有基準測試,停用此功能就能略過重新安裝和編譯程序。
- 引數類型:布林值
- 預設為:
true
androidx.benchmark.dryRunMode.enable
可在單一迴圈中執行基準測試,確認其是否正常運作。這個引數可與一般測試搭配使用,做為驗證的一部分。
- 引數類型:布林值
- 預設為:
false
androidx.benchmark.enabledRules
讓篩選器可以只執行一個類型的測試,例如基準設定檔產生測試或 Macrobenchmark 測試。另外也支援以半形逗號分隔的清單。
- 引數類型:字串
- 可用選項:
Macrobenchmark
BaselineProfile
- 預設為:未指定
androidx.benchmark.junit4.SideEffectRunListener
在基準測試執行期間,如果您執行不相關的背景工作,可能會取得不一致的基準測試結果。
如要在基準測試期間停用背景工作,請將 listener
檢測引數類型設為 androidx.benchmark.junit4.SideEffectRunListener
。
- 引數類型:字串
- 可用選項:
androidx.benchmark.junit4.SideEffectRunListener
- 預設為:未指定
androidx.benchmark.fullTracing.enable
啟用 androidx.tracing.perfetto
追蹤點,例如 Jetpack Compose
組合追蹤
您需要設定專案,才能擷取組合追蹤記錄 從基準數據中學習詳情請參閱「使用 Jetpack 擷取追蹤記錄 Macrobenchmark。
- 引數類型:布林值
- 預設為:
false
androidx.benchmark.profiling.mode
允許在執行基準測試時擷取追蹤記錄檔案。可用選項與 Microbenchmark 程式庫的相同,詳情請參閱「剖析 Microbenchmark」說明。
- 引數類型:字串
- 可用選項:
MethodTracing
StackSampling
None
- 預設為:
None
androidx.benchmark.startupProfiles.enable
可在基準測試期間停用產生啟動設定檔的功能。
- 引數類型:布林值
- 預設為:
true
androidx.benchmark.suppressErrors
接受以半形逗號分隔的錯誤清單來轉換成警告。
- 引數類型:字串清單
可用選項:
DEBUGGABLE
DEBUGGABLE
錯誤表示目標套件是以 資訊清單中的debuggable=true
,會大幅減少執行階段 以支援偵錯功能。為避免發生這項錯誤,請使用debuggable=false
的設定執行基準測試。可進行偵錯的引數會影響執行速度,意味著基準測試改善項目可能無法繼承到實際使用者體驗,也可能降低版本效能。LOW-BATTERY
電力不足時,裝置通常會降低效能以節省電池電力,例如停用大型核心。即使裝置接上電源也會發生這種情形。除非您是刻意降低效能來分析應用程式,否則請勿隱藏這項錯誤。
EMULATOR
EMULATOR
錯誤表示基準測試是在模擬器上執行,不是代表實際使用者的裝置。模擬器基準測試改善項目可能無法繼承至實際使用者體驗,也可能降低實體裝置的效能。您應改用實體裝置進行基準測試。如要隱藏這項錯誤,請務必謹慎操作。NOT-PROFILEABLE
目標套件「
$packageName
」正在運作,但不是<profileable shell=true>
。Android 10 和 11 必須設定 Profileable,Macrobenchmark 才能從目標程序擷取詳細的追蹤記錄資訊,例如應用程式或程式庫中定義的系統追蹤區段。如要隱藏這項錯誤,請務必謹慎操作。METHOD-TRACING-ENABLED
要執行基準測試的應用程式,其 Macrobenchmark 執行作業已啟用方法追蹤。這會導致 VM 的執行速度變慢,因此請只考量追蹤記錄檔中相關條件的指標,例如比較首次執行和第二次執行的速度。如要針對採用不同方法追蹤選項的版本比較基準測試結果,則隱藏這項錯誤可能導致結果不準確。
預設為:空白清單
additionalTestOutputDir
設定 JSON 基準報告和剖析結果儲存在裝置上的位置。
- 引數類型:路徑字串
- 預設為:測試 APK 的外部目錄
為您推薦
- 注意:系統會在 JavaScript 關閉時顯示連結文字
- Microbenchmark 檢測引數
- 建立基準設定檔
- JankStats 程式庫