Argumenty instrumentacji mikroporównawczej

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:

  1. Edytuj konfigurację uruchomienia, klikając Edytuj i wybierając konfigurację, którą chcesz edytować.
    Rysunek 1. Edytuj konfigurację uruchomienia.
  2. Edytuj argumenty instrumentacji, klikając  obok pola Argumenty instrumentacji.
    Rysunek 2. Edytuj argument instrumentacji.
  3. Kliknij  i dodaj wymagany argument instrumentacji.
    Rysunek 3. Dodaj 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