Configurez le comportement de Microbenchmark avec les arguments d'instrumentation suivants. Vous pouvez les ajouter à votre configuration Gradle ou les appliquer directement lorsque vous exécutez une instrumentation à partir de la ligne de commande. Pour définir ces arguments pour toutes les exécutions de test Android Studio et de ligne de commande, ajoutez-les à testInstrumentationRunnerArguments
:
android {
defaultConfig {
// ...
testInstrumentationRunnerArguments["androidx.benchmark.dryRunMode.enable"] = "true"
}
}
Vous pouvez également configurer des arguments d'instrumentation lorsque vous exécutez les analyses comparatives à partir d'Android Studio. Pour modifier les arguments, procédez comme suit :
- Modifiez la configuration d'exécution en cliquant sur Edit (Modifier), puis en sélectionnant la configuration à modifier.
- Modifiez les arguments d'instrumentation en cliquant sur à côté du champ Instrumentation arguments (Arguments d'instrumentation).
- Cliquez sur et ajoutez l'argument d'instrumentation requis.
Si vous exécutez le benchmark à partir de la ligne de commande, utilisez -P
android.testInstrumentationRunnerArguments.[name of the argument]
:
./gradlew :benchmark:connectedAndroidTest -P android.testInstrumentationRunnerArguments.androidx.benchmark.profiling.mode=StackSampling
Si vous appelez directement une commande d'instrumentation (ce qui peut être le cas dans les environnements de test CI), transmettez l'argument à am instrument
avec -e
:
adb shell am instrument -e androidx.benchmark.profiling.mode StackSampling -w com.example.macrobenchmark/androidx.benchmark.junit4.AndroidBenchmarkRunner
Pour en savoir plus sur la configuration des analyses comparatives dans l'intégration continue, consultez la section Analyse comparative dans l'intégration continue.
additionalTestOutputDir
Configure l'emplacement sur l'appareil où sont enregistrés les rapports d'analyse comparative JSON et les résultats de profilage.
- Type d'argument : chaîne du chemin d'accès au fichier
- Valeur par défaut : tester le répertoire externe de l'APK
androidx.benchmark.dryRunMode.enable
Vous permet d'exécuter des benchmarks dans une seule boucle afin de vérifier qu'elles fonctionnent correctement.
Autrement dit :
- Les erreurs de configuration ne sont pas appliquées (par exemple, pour faciliter l'exécution avec des tests d'exactitude réguliers sur les émulateurs)
- Le benchmark n'exécute qu'une seule boucle, sans préchauffage
- Les mesures et les traces ne sont pas capturées pour réduire le temps d'exécution.
Cela optimise le débit de test et la validation de la logique de référence par rapport à la création et à l'exactitude des mesures.
- Type d'argument : booléen
- Valeur par défaut :
false
androidx.benchmark.iterations
Ignore le nombre d'itérations cibles basées sur le temps pour garantir un volume de travail cohérent. En général, cette approche n'est utile que lorsque le profilage est activé, pour vous assurer que la quantité de travail est effectuée de manière cohérente dans une trace de profilage lorsque vous comparez différentes intégrations ou exécutions. Dans d'autres scénarios, cela réduit probablement la précision ou la stabilité des mesures.
- Type d'argument : entier
- Valeur par défaut : non spécifié
androidx.benchmark.junit4.SideEffectRunListener
Vous pouvez obtenir des résultats de benchmark incohérents si des tâches non liées en arrière-plan sont exécutées en même temps que le benchmark.
Pour désactiver les tâches en arrière-plan lors du benchmark, définissez le type d'argument d'instrumentation listener
sur androidx.benchmark.junit4.SideEffectRunListener
.
- Type d'argument : chaîne
- Options disponibles :
androidx.benchmark.junit4.SideEffectRunListener
- Valeur par défaut : non spécifié
androidx.benchmark.output.enable
Permet d'écrire le fichier JSON de résultats dans un espace de stockage externe.
- Type d'argument : booléen
- Valeur par défaut :
true
androidx.benchmark.profiling.mode
Permet de capturer des fichiers de suivi lors de l'exécution des benchmarks. Consultez la page Profiler un microbenchmark pour connaître les options disponibles.
- Type d'argument : chaîne
- Options disponibles :
MethodTracing
StackSampling
None
- Valeur par défaut :
None
androidx.benchmark.suppressErrors
Accepte une liste d'erreurs séparées par une virgule qui deviennent des avertissements.
- Type d'argument : liste de chaînes
- Options disponibles :
DEBUGGABLE
LOW-BATTERY
EMULATOR
CODE-COVERAGE
UNLOCKED
SIMPLEPERF
ACTIVITY-MISSING
- Valeur par défaut : liste vide
androidx.benchmark.startupMode.enable (obsolète)
Permet de reconfigurer le comportement de la boucle pour assurer l'analyse comparative du code au démarrage. Les benchmarks sont exécutés sans boucle de préchauffage pour 10 mesures. Pour minimiser les frais généraux dans les microbenchmarks, la moyenne de la boucle est désactivée.
- Type d'argument : booléen
- Valeur par défaut :
false
Recommandations personnalisées
- Remarque : Le texte du lien s'affiche lorsque JavaScript est désactivé.
- Arguments d'instrumentation Macrobenchmark
- Profiler un microbenchmark
- Créer des profils de référence {:#creating-profile-rules}