Zachowanie Microbenchmark możesz skonfigurować za pomocą tych argumentów pomiarowych. Możesz je dodać do konfiguracji Gradle lub zastosować bezpośrednio podczas uruchamiania pomiarów z poziomu wiersza poleceń. Aby ustawić te argumenty dla wszystkich testów uruchamianych w Android Studio i na wierszu poleceń, dodaj je do pliku testInstrumentationRunnerArguments
:
android {
defaultConfig {
// ...
testInstrumentationRunnerArguments["androidx.benchmark.dryRunMode.enable"] = "true"
}
}
Argumenty instrumentacji możesz też skonfigurować podczas uruchamiania testów porównawczych w Android Studio. Aby zmienić argumenty, wykonaj te czynności:
- Aby edytować konfigurację uruchomienia, kliknij Edytuj i wybierz konfigurację, którą chcesz edytować.
- Aby edytować argumenty pomiarów, kliknij obok pola Argumenty pomiarów.
- Kliknij i dodaj wymagany argument instrumentation.
Jeśli test porównawczy jest uruchamiany z poziomu wiersza poleceń, użyj -P
android.testInstrumentationRunnerArguments.[name of the argument]
:
./gradlew :benchmark:connectedAndroidTest -P android.testInstrumentationRunnerArguments.androidx.benchmark.profiling.mode=StackSampling
Jeśli wywołujesz bezpośrednio polecenie instrumentu (co może mieć miejsce w środowiskach testowania CI), przekaż argument do am instrument
za pomocą -e
:
adb shell am instrument -e androidx.benchmark.profiling.mode StackSampling -w com.example.macrobenchmark/androidx.benchmark.junit4.AndroidBenchmarkRunner
Więcej informacji o konfigurowaniu testów porównawczych w CI znajdziesz w artykule Testy porównawcze w CI.
additionalTestOutputDir
Konfiguruje miejsce na urządzeniu, w którym są zapisywane raporty porównywania wydajności w formacie JSON i wyniki profilowania.
- Typ argumentu: ciąg znaków ścieżki do pliku
- Domyślnie: zewnętrzny katalog pliku APK testu
androidx.benchmark.dryRunMode.enable
Umożliwia uruchamianie testów porównawczych w pojedynczej pętli, aby sprawdzić, czy działają prawidłowo.
Oznacza to, że:
- Błędy konfiguracji nie są wymuszane (na przykład po to, aby ułatwić uruchamianie testów poprawności na emulatorach).
- Test porównawczy wykonuje tylko jedną pętlę bez rozgrzewki.
- pomiary i ścieżki nie są rejestrowane, aby skrócić czas działania;
Pozwala to zoptymalizować przepustowość testu i sprawdzanie logiki benchmarku w porównaniu z poprawnością budowy i pomiarów.
- Typ argumentu: wartość logiczna
- Domyślnie:
false
androidx.benchmark.iterations
Zastępuje docelową liczbę iteracji opartą na czasie, aby zapewnić stałą ilość pracy. Jest to zwykle przydatne tylko wtedy, gdy włączono profilowanie, aby zapewnić spójność ilości pracy wykonywanej w śladzie profilowania podczas porównywania różnych implementacji lub przebiegów. W innych przypadkach może to obniżyć dokładność lub stabilność pomiarów.
- Typ argumentu: liczba całkowita
- Domyślnie: nieokreślone
androidx.benchmark.junit4.SideEffectRunListener
Jeśli podczas testu porównawczego wykonywane są nieistotne zadania w tle, wyniki mogą być niespójne.
Aby wyłączyć działanie w tle podczas testowania porównawczego, ustaw parametr listener
typu instrumentacji na androidx.benchmark.junit4.SideEffectRunListener
.
- Typ argumentu: ciąg znaków
- Dostępne opcje:
androidx.benchmark.junit4.SideEffectRunListener
- Domyślnie: nieokreślone
androidx.benchmark.output.enable
Umożliwia zapisanie pliku JSON z wynikiem w pamięci zewnętrznej.
- Typ argumentu: wartość logiczna
- Domyślnie:
true
androidx.benchmark.profiling.mode
Umożliwia przechwytywanie plików z wykresami podczas uruchamiania testów porównawczych. Dostępne opcje znajdziesz w artykule Profilowanie za pomocą mikrobenchmarków.
- Typ argumentu: ciąg znaków
- Dostępne opcje:
MethodTracing
StackSampling
None
- Domyślnie:
None
androidx.benchmark.suppressErrors
Akceptuje rozdzieloną przecinkami listę błędów do przekształcenia w ostrzeżenia.
- Typ argumentu: lista ciągów znaków
- Dostępne opcje:
DEBUGGABLE
LOW-BATTERY
EMULATOR
CODE-COVERAGE
UNLOCKED
SIMPLEPERF
ACTIVITY-MISSING
- Domyślnie: pusta lista
androidx.benchmark.startupMode.enable (wycofane)
Zmienia sposób działania pętli, aby umożliwić testowanie porównawcze kodu podczas uruchamiania. Benchmarki są wykonywane bez pętli rozgrzewania przez 10 pomiary. Aby zminimalizować obciążenie w mikrotestach, zliczanie średniej w pętli jest wyłączone.
- Typ argumentu: wartość logiczna
- Domyślnie:
false
Polecane dla Ciebie
- Uwaga: tekst linku jest wyświetlany, gdy obsługa JavaScript jest wyłączona
- Argumenty instrumentacji testów porównawczych makro
- Profilowanie mikrobenchmarku
- Tworzenie profili podstawowych {:#creating-profile-rules}