Configura il comportamento di Microbenchmark con i seguenti argomenti di strumentazione. Puoi aggiungerli alla configurazione Gradle o applicarli
direttamente quando esegui l'instrumentazione dalla riga di comando. Per impostare questi
argomenti per tutte le esecuzioni di test di Android Studio e della riga di comando, aggiungili a
testInstrumentationRunnerArguments:
android {
defaultConfig {
// ...
testInstrumentationRunnerArguments["androidx.benchmark.dryRunMode.enable"] = "true"
}
}
Puoi anche configurare gli argomenti di strumentazione quando esegui i benchmark da Android Studio. Per modificare gli argomenti:
- Modifica la configurazione di esecuzione facendo clic su Modifica e selezionando la
configurazione che vuoi modificare.
Figura 1. Modifica la configurazione di esecuzione. - Modifica gli argomenti di strumentazione facendo clic su
accanto al campo Argomenti di
strumentazione.
Figura 2. Modifica l'argomento di strumentazione. - Fai clic su e aggiungi l'argomento di strumentazione richiesto.
Figura 3. Aggiungi l'argomento di strumentazione.
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=StackSamplingSe richiami direttamente un comando di strumentazione (come può accadere 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.AndroidBenchmarkRunnerPer saperne di più sulla configurazione dei benchmark in CI, consulta Benchmarking in CI
androidx.benchmark.cpuEventCounter.enable (sperimentale)
Conteggia gli eventi della CPU specificati in androidx.benchmark.cupEventCounter.events.
Richiede l'accesso root.
- Tipo di argomento: booleano
- Valore predefinito: false
androidx.benchmark.cpuEventCounter.events (sperimentale)
Specifica i tipi di eventi della CPU da conteggiare. Per utilizzare questo argomento, androidx.benchmark.cpuEventCounter.enable deve essere impostato su true.
- Tipo di argomento:elenco di stringhe separate da virgole
- Opzioni disponibili:
InstructionsCPUCyclesL1DReferencesL1DMissesBranchInstructionsBranchMissesL1IReferencesL1IMisses
- Valore predefinito:
Instructions,CpuCycles,BranchMisses
androidx.benchmark.dryRunMode.enable
Consente di eseguire benchmark in un singolo ciclo per verificare che funzionino correttamente.
Ciò significa:
- Gli errori di configurazione non vengono applicati (ad esempio, per semplificare l'esecuzione con test di correttezza regolari sugli 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, l'ottimizzazione viene eseguita in base alla velocità effettiva del test e alla convalida della logica di benchmark rispetto alla correttezza della compilazione e della misurazione.
- Tipo di argomento: booleano
- Valore predefinito:
false
androidx.benchmark.killExistingPerfettoRecordings
Per impostazione predefinita, Benchmark termina le registrazioni Perfetto (System Trace) esistenti quando
avvia una nuova traccia per ridurre le interferenze. Per disattivare questo comportamento, passa
false.
- Tipo di argomento: booleano
- Valore predefinito:
true
androidx.benchmark.output.enable
Consente di scrivere il file JSON dei risultati in un archivio esterno.
- Tipo di argomento: booleano
- Valore predefinito:
true
androidx.benchmark.profiling.mode
Consente di acquisire file di traccia durante l'esecuzione dei benchmark. Consulta la sezione Profilare un microbenchmark per le opzioni disponibili.
Tieni presente che alcune versioni del sistema operativo Android non supportano la traccia dei metodi senza che le misurazioni successive vengano interessate. Microbenchmark genera un'eccezione per evitare questo problema, quindi utilizza l'argomento predefinito per acquisire le tracce del metodo solo quando è sicuro farlo. Vedi Problema n. 316174880.
- Tipo di argomento: stringa
- Opzioni disponibili:
MethodTracingStackSamplingNone
- Valore predefinito:versione sicura di
MethodTracingche acquisisce una traccia del metodo solo se il dispositivo può farlo senza influire sulle misurazioni.
androidx.benchmark.suppressErrors
Accetta un elenco di errori separati da virgole da trasformare in avvisi.
- Tipo di argomento: elenco di stringhe
- Opzioni disponibili:
DEBUGGABLELOW-BATTERYEMULATORCODE-COVERAGEUNLOCKEDSIMPLEPERFACTIVITY-MISSING
- Valore predefinito:un elenco vuoto
additionalTestOutputDir
Configura la posizione in cui vengono salvati i report di benchmark JSON e i risultati della profilazione sul dispositivo.
- Tipo di argomento: stringa del percorso del file
- Valore predefinito: directory esterna dell'APK di test
listener
Potresti ottenere risultati del benchmark incoerenti se vengono eseguiti lavori in background non correlati durante l'esecuzione del benchmark.
Per disattivare il lavoro in background durante il benchmarking, imposta il tipo di argomento di strumentazione listener su androidx.benchmark.junit4.SideEffectRunListener.
- Tipo di argomento: stringa
- Opzioni disponibili:
androidx.benchmark.junit4.SideEffectRunListener
- Valore predefinito:non specificato
Consigliati per te
- Nota: il testo del link viene visualizzato quando JavaScript è disattivato
- Argomenti di strumentazione di Macrobenchmark
- Profilare un microbenchmark
- Creare profili di base {:#creating-profile-rules}