Argumenty instrumentacji mikroporównawczej

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:

  1. Aby edytować konfigurację uruchomienia, kliknij Edytuj i wybierz konfigurację, którą chcesz edytować.
    Rysunek 1. Edytuj konfigurację uruchomienia.
  2. Aby edytować argumenty pomiarów, kliknij  obok pola Argumenty pomiarów.
    Rysunek 2. Zmień argument pomiarowy.
  3. Kliknij  i dodaj wymagany argument instrumentation.
    Rysunek 3. Dodaj argument dotyczący pomiarów.

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