Configura il comportamento della libreria con la seguente strumentazione
argomenti. Puoi aggiungerli alla configurazione Gradle o applicarli
direttamente durante l'esecuzione della strumentazione dalla riga di comando. Per impostare questi
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 quando esegui i benchmark da Android Studio. Per modificare gli argomenti:
- Modifica la configurazione di esecuzione facendo clic su Modifica, quindi sul pulsante configurazione.
- Modifica gli argomenti della strumentazione facendo clic su Altro di Argomenti di strumentazione.
- Aggiungi l'argomento di strumentazione richiesto facendo clic Aggiungi in Strumentazione Parametri aggiuntivi.
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. Di
per impostazione predefinita, l'applicazione di destinazione viene reinstallata e ricompilata tra
benchmark, per rispettare il valore CompilationMode
trasmesso
measureRepeated
. Se disattivi questa opzione, puoi ignorare entrambi
reinstallare e compilare se, ad esempio, vuoi compilare completamente il file
dell'app una volta prima di eseguire la suite di test ed eseguire tutti i benchmark sulla base
target compilato.
- 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 ricevi lavori in background non correlati mentre il benchmark è in esecuzione.
Per disattivare il lavoro in background durante il benchmarking, imposta listener
di strumentazione
androidx.benchmark.junit4.SideEffectRunListener
.
- Tipo di argomento:stringa.
- Opzioni disponibili:
androidx.benchmark.junit4.SideEffectRunListener
- Valore predefinito: non specificato
androidx.benchmark.fullTracking.enable
Abilita tracepoint androidx.tracing.perfetto
come Jetpack Compose
il tracciamento della composizione.
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 corrispondono a quelle della libreria Microbenchmark; per ulteriori informazioni, vedi le descrizioni Profila un 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, che riduce drasticamente il tempo di esecuzione per supportare le funzionalità di debug. Per evitare questo errore, esegui benchmark condebuggable=false
. L'argomento di cui è possibile eseguire il debug influisce la velocità di esecuzione potrebbe non comportare che i miglioramenti dei benchmark sull'esperienza di un utente reale o potrebbe far regredire le prestazioni delle release.LOW-BATTERY
Quando la batteria è in esaurimento, spesso i dispositivi riducono le prestazioni per risparmiare tempo batteria, ad esempio disabilitando i grandi core. Ciò si verifica anche quando sono collegati. Elimina questo errore solo se sei deliberatamente Profilazione dell'app con prestazioni ridotte.
EMULATOR
L'errore
EMULATOR
indica che il benchmark è in esecuzione su una che non è rappresentativo dei dispositivi degli utenti reali. Emulatore i miglioramenti del benchmark potrebbero non essere trasferiti all'esperienza di un utente reale o regredire le prestazioni reali del dispositivo. Dovresti usare un fisico dispositivo come benchmark. Elimina questo errore con estrema cautela.NOT-PROFILEABLE
Il pacchetto di destinazione
$packageName
è in esecuzione senza<profileable shell=true>
. Il profilo è obbligatorio su Android 10 e 11 consente a Macrobenchmark di acquisire informazioni di traccia dettagliate dalla destinazione ad esempio le sezioni di tracciamento del sistema definite nell'app librerie. Elimina questo errore con estrema cautela.METHOD-TRACING-ENABLED
L'esecuzione di Macrobenchmark per l'app sottoposta a benchmark prevede il tracciamento del metodo in un bucket con il controllo delle versioni attivo. Di conseguenza la VM viene eseguita più lentamente del solito, le metriche dei file di traccia in termini relativi, ad esempio confrontando la velocità della prima esecuzione con la seconda. Eliminazione può generare risultati imprecisi se confronti i benchmark per con diverse opzioni di tracciamento.
Il valore predefinito è: un elenco vuoto
testOutputDir aggiuntivo
Consente di configurare la posizione in cui vengono salvati i report di benchmark JSON e i risultati di profilazione dispositivo.
- Tipo di argomento: stringa del percorso.
- Impostazione predefinita: directory esterna dell'APK di test
Consigliati per te
- Nota: il testo del link viene visualizzato quando JavaScript è disattivato
- Argomenti di strumentazione Microbenchmark
- Crea profili di riferimento
- Libreria JankStats