Argomenti strumentazione Microbenchmark

Configura il comportamento di Microbenchmark con i seguenti argomenti di instrumentation. Puoi aggiungerli alla configurazione di Gradle o applicarli direttamente quando esegui l'ispezione dalla riga di comando. Per impostare questi parametri per tutte le esecuzioni di test della riga di comando e di Android Studio, aggiungili a testInstrumentationRunnerArguments:

android {
    defaultConfig {
        // ...
        testInstrumentationRunnerArguments["androidx.benchmark.dryRunMode.enable"] = "true"
    }
}

Puoi anche configurare gli argomenti di misurazione quando esegui i benchmark da Android Studio. Per modificare gli argomenti:

  1. Modifica la configurazione di esecuzione facendo clic su Modifica e selezionando la configurazione da modificare.
    Figura 1. Modifica la configurazione di esecuzione.
  2. Modifica gli argomenti di misurazione facendo clic su accanto al campo Argomenti di misurazione.
    Figura 2. Modifica l'argomento di misurazione.
  3. Fai clic su e aggiungi l'argomento di instrumentation obbligatorio.
    Figura 3. Aggiungi l'argomento di misurazione.

Se esegui il benchmark dalla riga di comando, utilizza -P android.testInstrumentationRunnerArguments.[name of the argument]:

./gradlew :benchmark:connectedAndroidTest -P android.testInstrumentationRunnerArguments.androidx.benchmark.profiling.mode=StackSampling

Se invochi direttamente un comando am instrument (come potrebbe essere il caso negli ambienti di test CI), passa l'argomento a am instrument con -e:

adb shell am instrument -e androidx.benchmark.profiling.mode StackSampling -w com.example.macrobenchmark/androidx.benchmark.junit4.AndroidBenchmarkRunner

Per ulteriori informazioni sulla configurazione dei benchmark in CI, consulta Benchmarking in CI

additionalTestOutputDir

Configura la posizione in cui vengono salvati i report di benchmark e i risultati di profilazione JSON sul dispositivo.

  • Tipo di argomento: stringa del percorso del file
  • Valore predefinito: directory esterna dell'APK di test

androidx.benchmark.dryRunMode.enable

Ti consente di eseguire benchmark in un singolo ciclo per verificare che funzionino correttamente.

Ciò significa che:

  • Gli errori di configurazione non vengono applicati (ad esempio, per semplificare l'esecuzione con test di correttezza regolari su emulatori)
  • Il benchmark esegue un solo ciclo, senza riscaldamento
  • Le misurazioni e le tracce non vengono acquisite per ridurre il tempo di esecuzione

In questo modo, viene ottimizzata la velocità in termini di test e la convalida della logica del benchmark rispetto alla correttezza della compilazione e della misurazione.

  • Tipo di argomento: booleano
  • Valore predefinito: false

androidx.benchmark.iterations

Sostituisce i conteggi delle iterazioni target basati sul tempo per contribuire a garantire un volume di lavoro costante. In genere, questa opzione è utile solo se è attivato il profiling per contribuire a garantire che venga eseguita una quantità di lavoro coerente all'interno di una traccia di profilazione quando si confrontano implementazioni o esecuzioni diverse. In altri scenari, questa operazione potrebbe ridurre la precisione o la stabilità delle misurazioni.

  • Tipo di argomento: numero intero
  • Valore predefinito: non specificato

androidx.benchmark.junit4.SideEffectRunListener

Potresti ottenere risultati incoerenti del benchmark se viene eseguito un lavoro in background non correlato durante l'esecuzione del benchmark.

Per disattivare il lavoro in background durante il benchmarking, imposta il listener tipo di argomento di strumentazione su androidx.benchmark.junit4.SideEffectRunListener.

  • Tipo di argomento: stringa
  • Opzioni disponibili:
    • androidx.benchmark.junit4.SideEffectRunListener
  • Valore predefinito: non specificato

androidx.benchmark.output.enable

Consente di scrivere il file JSON del risultato in uno spazio di archiviazione esterno.

  • Tipo di argomento: booleano
  • Valore predefinito: true

androidx.benchmark.profiling.mode

Consente di acquisire i file di traccia durante l'esecuzione dei benchmark. Consulta la sezione Eseguire il profiling di un microbenchmark per conoscere le opzioni disponibili.

  • Tipo di argomento: stringa
  • Opzioni disponibili:
    • MethodTracing
    • StackSampling
    • None
  • Valore predefinito: None

androidx.benchmark.suppressErrors

Accetta un elenco di errori separati da virgole da trasformare in avvisi.

  • Tipo di argomento: elenco di stringhe
  • Opzioni disponibili:
    • DEBUGGABLE
    • LOW-BATTERY
    • EMULATOR
    • CODE-COVERAGE
    • UNLOCKED
    • SIMPLEPERF
    • ACTIVITY-MISSING
  • Valore predefinito: un elenco vuoto

androidx.benchmark.startupMode.enable (deprecato)

Riconfigura il comportamento di looping per supportare il codice di benchmarking durante l'avvio. I benchmark vengono eseguiti senza un ciclo di riscaldamento per 10 misurazioni. Per ridurre al minimo il sovraccarico nei microbenchmark, la media del loop è disattivata.

  • Tipo di argomento: booleano
  • Valore predefinito: false