Skonfiguruj działanie mikrobenczmarku za pomocą tych argumentów instrumentacji. Możesz dodać je do konfiguracji Gradle lub zastosować bezpośrednio podczas uruchamiania instrumentacji z wiersza poleceń. Aby ustawić te argumenty dla wszystkich testów uruchamianych w Android Studio i wierszu poleceń, dodaj je do pliku testInstrumentationRunnerArguments
:
android {
defaultConfig {
// ...
testInstrumentationRunnerArguments["androidx.benchmark.dryRunMode.enable"] = "true"
}
}
Argumenty instrumentacji możesz też skonfigurować podczas przeprowadzania testów porównawczych w Android Studio. Aby zmienić argumenty:
- Edytuj konfigurację uruchomienia, klikając Edytuj i wybierając konfigurację, którą chcesz edytować.
Rysunek 1. Edytuj konfigurację uruchomienia. - Edytuj argumenty instrumentacji, klikając
Rysunek 2. Edytuj argument instrumentacji.
obok pola Argumenty instrumentacji.
- Kliknij
Rysunek 3. Dodaj argument instrumentacji.
i dodaj wymagany argument instrumentacji.
Jeśli uruchamiasz test porównawczy z wiersza poleceń, użyj tego polecenia:-P
android.testInstrumentationRunnerArguments.[name of the argument]
./gradlew :benchmark:connectedAndroidTest -P android.testInstrumentationRunnerArguments.androidx.benchmark.profiling.mode=StackSampling
Jeśli wywołujesz polecenie instrumentu bezpośrednio (co może mieć miejsce w środowiskach testowych 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.
androidx.benchmark.cpuEventCounter.enable (wersja eksperymentalna)
Zlicza zdarzenia procesora określone w androidx.benchmark.cupEventCounter.events
.
Wymaga dostępu do roota.
- Typ argumentu: wartość logiczna
- Wartość domyślna: false
androidx.benchmark.cpuEventCounter.events (eksperymentalne)
Określa typy zdarzeń związanych z procesorem, które mają być zliczane. Aby użyć tego argumentu, wartość parametru androidx.benchmark.cpuEventCounter.enable
musi być ustawiona na true
.
- Typ argumentu: lista ciągów znaków oddzielonych przecinkami
- Dostępne opcje:
Instructions
CPUCycles
L1DReferences
L1DMisses
BranchInstructions
BranchMisses
L1IReferences
L1IMisses
- Domyślne wartości:
Instructions
,CpuCycles
,BranchMisses
androidx.benchmark.dryRunMode.enable
Umożliwia uruchamianie testów porównawczych w jednej pętli, aby sprawdzić, czy działają prawidłowo.
Oznacza to, że:
- Błędy konfiguracji nie są wymuszane (np. aby ułatwić przeprowadzanie zwykłych testów poprawności na emulatorach).
- Test porównawczy wykonuje tylko jedną pętlę bez rozgrzewki.
- Pomiary i ślady nie są rejestrowane, aby skrócić czas działania.
Optymalizuje to przepustowość testu i weryfikuje logikę testu porównawczego pod kątem poprawności kompilacji i pomiarów.
- Typ argumentu: wartość logiczna
- Domyślna wartość:
false
androidx.benchmark.killExistingPerfettoRecordings
Benchmark domyślnie kończy wszystkie istniejące nagrania Perfetto (śledzenie systemu), gdy rozpoczyna nowe śledzenie, aby zmniejszyć zakłócenia. Aby wyłączyć to działanie, przekaż wartość
false
.
- Typ argumentu: wartość logiczna
- Domyślna wartość:
true
androidx.benchmark.output.enable
Umożliwia zapisywanie wynikowego pliku JSON w pamięci zewnętrznej.
- Typ argumentu: wartość logiczna
- Domyślna wartość:
true
androidx.benchmark.profiling.mode
Umożliwia rejestrowanie plików śledzenia podczas uruchamiania testów porównawczych. Dostępne opcje znajdziesz w sekcji Profilowanie mikrobenczmarku.
Pamiętaj, że niektóre wersje Androida nie obsługują śledzenia metod bez wpływu na kolejne pomiary. Mikrotest zgłasza wyjątek, aby temu zapobiec, więc użyj domyślnego argumentu, aby rejestrować ślady metod tylko wtedy, gdy jest to bezpieczne. Zobacz problem 316174880.
- Typ argumentu: ciąg
- Dostępne opcje:
MethodTracing
StackSampling
None
- Domyślnie: bezpieczna wersja
MethodTracing
, która rejestruje ślad metody tylko wtedy, gdy urządzenie może to zrobić bez wpływu na pomiary.
androidx.benchmark.suppressErrors
Akceptuje rozdzieloną przecinkami listę błędów, które mają być traktowane jako ostrzeżenia.
- Typ argumentu: lista ciągów znaków
- Dostępne opcje:
DEBUGGABLE
LOW-BATTERY
EMULATOR
CODE-COVERAGE
UNLOCKED
SIMPLEPERF
ACTIVITY-MISSING
- Wartość domyślna: pusta lista
additionalTestOutputDir
Konfiguruje miejsce, w którym na urządzeniu są zapisywane raporty porównawcze JSON i wyniki profilowania.
- Typ argumentu: ciąg ścieżki pliku
- Domyślnie: zewnętrzny katalog testowego pliku APK
detektor
Jeśli podczas testu porównawczego będą wykonywane niezwiązane z nim zadania w tle, wyniki mogą być niespójne.
Aby wyłączyć pracę w tle podczas testów porównawczych, ustaw typ argumentu listener
na androidx.benchmark.junit4.SideEffectRunListener
.
- Typ argumentu: ciąg
- Dostępne opcje:
androidx.benchmark.junit4.SideEffectRunListener
- Domyślna wartość: nieokreślona
Polecane dla Ciebie
- Uwaga: tekst linku jest wyświetlany, gdy JavaScript jest wyłączony.
- Argumenty instrumentacji testu porównawczego
- Profilowanie mikrobenczmarku
- Tworzenie profili podstawowych {:#creating-profile-rules}