Configura il comportamento della libreria con i seguenti argomenti di strumentazione. Puoi aggiungerli alla configurazione Gradle o applicarli
direttamente quando esegui la strumentazione 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 impostare argomenti di strumentazione durante l'esecuzione dei benchmark da Android Studio. Per modificare gli argomenti:
- Modifica la configurazione di esecuzione facendo clic su Modifica, quindi sulla configurazione.
- Modifica gli argomenti di strumentazione facendo clic su Altro per Argomenti strumentazione.
- Aggiungi l'argomento di strumentazione richiesto facendo clic su Aggiungi in Parametri aggiuntivi della strumentazione.
Se chiami direttamente dalla riga di comando, utilizza -P
android.testInstrumentationRunnerArguments.[name of the argument]
.
./gradlew :benchmark:connectedAndroidTest -P android.testInstrumentationRunnerArguments.androidx.benchmark.enabledRules=BaselineProfile
androidx.benchmark.compilation.enabled
Consente di disabilitare la compilazione tra ogni iterazione del benchmark. Per
impostazione predefinita, l'applicazione di destinazione viene reinstallata e compilata in ogni
benchmark, per rispettare il valore CompilationMode
trasferito a
measureRepeated
. Se disabiliti questa opzione, puoi saltare sia la reinstallazione sia la compilazione se, ad esempio, vuoi compilare completamente l'app di destinazione una volta prima di eseguire la suite di test ed eseguire tutti i benchmark sulla destinazione completamente compilata.
- Tipo di argomento: booleano
- Il valore predefinito è:
true
androidx.benchmark.dryRunMode.enable
Consente di eseguire i benchmark in un singolo loop per verificarne il corretto funzionamento. Puoi utilizzarlo con test regolari nell'ambito della verifica.
- Tipo di argomento: booleano
- Il valore predefinito è:
false
androidx.benchmark.enabledRules
Consente di filtrare le esecuzioni per un solo tipo di test: generazione del profilo di riferimento o test macrobenchmark. Sono supportati anche gli elenchi separati da virgole.
- Tipo di argomento: stringa
- Opzioni disponibili:
Macrobenchmark
BaselineProfile
- Valore predefinito: non specificato
androidx.benchmark.junit4.SideEffectRunListener
Potresti ottenere risultati di benchmark incoerenti se viene eseguito il lavoro in background non correlato mentre è in esecuzione il 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
androidx.benchmark.fullTracking.enable
Abilita i punti di traccia androidx.tracing.perfetto
come il tracciamento della composizione di Jetpack Compose.
Devi configurare il progetto per poter acquisire il tracciamento della composizione dai benchmark. Per ulteriori informazioni, vedi Acquisire una traccia con Jetpack Macrobenchmark.
- Tipo di argomento: booleano
- Il valore predefinito è:
false
modalità.profilazione.androidx.benchmark.
Consente di acquisire file di traccia durante l'esecuzione dei benchmark. Le opzioni disponibili sono le stesse per la libreria Microbenchmark. Per ulteriori informazioni, consulta le descrizioni in Profilo a Microbenchmark.
- Tipo di argomento:stringa.
- Opzioni disponibili:
MethodTracing
StackSampling
None
- Il valore predefinito è:
None
androidx.benchmark.startupProfiles.enable
Consente di disattivare la generazione di profili iniziali durante il benchmarking.
- Tipo di argomento: booleano
- Il valore predefinito è:
true
androidx.benchmark.suppressErrors
Accetta un elenco separato da virgole di errori da convertire in avvisi.
- Tipo di argomento: elenco di stringhe.
Opzioni disponibili:
DEBUGGABLE
L'errore
DEBUGGABLE
indica che il pacchetto di destinazione è in esecuzione condebuggable=true
nel file manifest, il che riduce drasticamente le prestazioni di runtime per supportare le funzionalità di debug. Per evitare questo errore, esegui i benchmark condebuggable=false
. L'argomento di cui è possibile eseguire il debug influisce sulla velocità di esecuzione, il che significa che i miglioramenti del benchmark potrebbero non essere trasferiti all'esperienza di un utente reale o far regredire le prestazioni della release.LOW-BATTERY
Quando la batteria è in esaurimento, i dispositivi spesso riducono le prestazioni per risparmiare batteria rimanente, ad esempio disattivando i big core. Questo accade anche quando i dispositivi sono collegati. Elimina questo errore solo se profila deliberatamente l'app con prestazioni ridotte.
EMULATOR
L'errore
EMULATOR
indica che il benchmark è in esecuzione su un emulatore, che non è rappresentativo dei dispositivi di utenti reali. I miglioramenti del benchmark dell'emulatore potrebbero non essere trasferiti all'esperienza di un utente reale o potrebbero regredire le prestazioni reali del dispositivo. Dovresti usare un dispositivo fisico come benchmark. Elimina questo errore con estrema cautela.NOT-PROFILEABLE
Il pacchetto di destinazione
$packageName
è in esecuzione senza<profileable shell=true>
. Profileable è obbligatorio su Android 10 e 11 per consentire a Macrobenchmark di acquisire informazioni di traccia dettagliate dal processo di destinazione, ad esempio le sezioni di tracciamento del sistema definite nell'app o nelle librerie. Elimina questo errore con estrema cautela.METHOD-TRACING-ENABLED
L'esecuzione di Macrobenchmark per l'app sottoposta a benchmark ha il tracciamento dei metodi abilitato. Questo causa un'esecuzione della VM più lenta del solito, quindi considera le metriche dei file di traccia solo in termini relativi, ad esempio confrontando la velocità della prima esecuzione con la seconda. L'eliminazione di questo errore può portare a risultati imprecisi se confronti i benchmark per le build con diverse opzioni di tracciamento del metodo.
Il valore predefinito è: un elenco vuoto
testOutputDir aggiuntivo
Consente di configurare dove vengono salvati sul dispositivo i report di benchmark JSON e i risultati di profilazione.
- Tipo di argomento: stringa del percorso.
- Impostazione predefinita: directory esterna dell'APK di test
Consigliato per te
- Nota: il testo del link viene visualizzato quando JavaScript è disattivato
- Argomenti di strumentazione Microbenchmark
- Crea profili di riferimento
- Libreria JankStats