Konfigurieren Sie das Verhalten der Bibliothek mit der folgenden Instrumentierung
Argumente. Du kannst sie entweder deiner Gradle-Konfiguration hinzufügen oder sie anwenden
wenn Sie die Instrumentierung über die Befehlszeile ausführen. So legen Sie diese fest:
Argumente für alle Android Studio- und Befehlszeilen-Testläufe.
testInstrumentationRunnerArguments
:
android {
defaultConfig {
// ...
testInstrumentationRunnerArguments["androidx.benchmark.dryRunMode.enable"] = "true"
}
}
Sie können auch Instrumentierungsargumente einrichten, wenn Sie die Benchmarks aus Android Studio So ändern Sie die Argumente:
- Bearbeiten Sie die Ausführungskonfiguration, indem Sie auf Bearbeiten und dann auf Konfiguration. <ph type="x-smartling-placeholder">
- Bearbeiten Sie die Instrumentierungsargumente, indem Sie auf Mehr von Instrumentierungsargumente. <ph type="x-smartling-placeholder">
- Fügen Sie das erforderliche Instrumentierungsargument hinzu, indem Sie auf Hinzufügen unter Instrumentierung Zusätzliche Parameter. <ph type="x-smartling-placeholder">
Wenn Sie direkt über die Befehlszeile anrufen, verwenden Sie -P
android.testInstrumentationRunnerArguments.[name of the argument]
.
./gradlew :benchmark:connectedAndroidTest -P android.testInstrumentationRunnerArguments.androidx.benchmark.enabledRules=BaselineProfile
androidx.Benchmark.compilation.enabled
Hiermit können Sie die Kompilierung zwischen jeder Iteration der Benchmark deaktivieren. Von
wird die Zielanwendung zwischen den beiden
verwendet, um den CompilationMode
zu berücksichtigen, der an
measureRepeated
Wenn Sie diese Option deaktivieren, können Sie
Neuinstallation und Kompilierung, wenn Sie beispielsweise das Ziel vollständig kompilieren möchten
bevor Sie die Testsuite ausführen, und führen Sie alle Benchmarks
kompiliertes Ziel.
- Argumenttyp: boolesch
- Standardwert:
true
androidx.Benchmark.dryRunMode.enable
Hiermit können Sie Benchmarks in einer einzelnen Schleife ausführen, um zu prüfen, ob sie ordnungsgemäß funktionieren. Sie können es mit regelmäßigen Tests im Rahmen der Überprüfung verwenden.
- Argumenttyp: boolesch
- Standardwert:
false
androidx.Benchmark.enabledRules
Ermöglicht das Filtern von Ausführungen nach nur einem Testtyp: Generierung von Referenzprofilen oder Makro-Benchmark-Test. Durch Kommas getrennte Listen werden ebenfalls unterstützt.
- Argumenttyp: String
- Verfügbare Optionen:
<ph type="x-smartling-placeholder">
- </ph>
Macrobenchmark
BaselineProfile
- Standardeinstellung: Nicht angegeben
androidx.Benchmark.junit4.SideEffectRunListener
Sie erhalten möglicherweise inkonsistente Benchmark-Ergebnisse, wenn im Hintergrund während die Benchmark ausgeführt wird.
Um während des Benchmarking Hintergrundarbeiten zu deaktivieren, legen Sie Folgendes fest: listener
Instrumentierungsargumenttyp in
androidx.benchmark.junit4.SideEffectRunListener
.
- Argumenttyp: String
- Verfügbare Optionen:
<ph type="x-smartling-placeholder">
- </ph>
androidx.benchmark.junit4.SideEffectRunListener
- Standardeinstellung: Keine Angabe
androidx.Benchmark.fullTracing.enable
Aktiviert androidx.tracing.perfetto
-Tracepoints wie Jetpack Compose
Zusammensetzungs-Tracing
Sie müssen Ihr Projekt einrichten, um Zusammensetzungs-Tracing zu erfassen von den Benchmarks. Weitere Informationen finden Sie unter Trace mit Jetpack erfassen Makro-Benchmark:
- Argumenttyp: boolescher Wert
- Standardwert:
false
androidx.Benchmark.profiling.mode
Ermöglicht das Erfassen von Trace-Dateien beim Ausführen der Benchmarks. Verfügbare Optionen sind identisch mit denen für die MicroBenchmark-Bibliothek. Weitere Informationen finden Sie unter die Beschreibungen unter Profil für MicroBenchmark erstellen
- Argumenttyp: String
- Verfügbare Optionen:
<ph type="x-smartling-placeholder">
- </ph>
MethodTracing
StackSampling
None
- Standardwert:
None
androidx.Benchmark.startupProfiles.enable
Hiermit können Sie die Generierung von Start-up-Profilen während des Benchmarking deaktivieren.
- Argumenttyp: boolescher Wert
- Standardwert:
true
androidx.Benchmark.suppressErrors
Akzeptiert eine durch Kommas getrennte Liste von Fehlern, die in Warnungen umgewandelt werden.
- Argumenttyp: Liste mit Strings
Verfügbare Optionen:
DEBUGGABLE
Der Fehler
DEBUGGABLE
gibt an, dass das Zielpaket mitdebuggable=true
im Manifest, wodurch die Laufzeit drastisch reduziert wird um Funktionen zur Fehlerbehebung zu unterstützen. Führen Sie den folgenden Befehl aus, um diesen Fehler zu vermeiden: mitdebuggable=false
. Das Debug-fähige Argument wirkt sich dass die Benchmark-Verbesserungen auf die Nutzererfahrung übertragen oder die Release-Leistung beeinträchtigen.LOW-BATTERY
Bei niedrigem Akkustand wird die Leistung oft reduziert, um verbleibendes Datenvolumen zu sparen z. B. durch Deaktivieren großer Kerne. Dies geschieht auch dann, Geräte angeschlossen sind. Unterdrücken Sie diesen Fehler nur, wenn Sie App-Profil mit reduzierter Leistung erstellen.
EMULATOR
Der Fehler
EMULATOR
gibt an, dass die Benchmark auf einem Emulator, der nicht repräsentativ für die Geräte echter Nutzer ist. Emulator Benchmark-Verbesserungen werden möglicherweise nicht auf die tatsächliche Nutzererfahrung übertragen. oder die tatsächliche Geräteleistung sinkt. Sie sollten eine physische in die Benchmark-Vergleiche. Unterdrücken Sie diesen Fehler nur mit äußerster Vorsicht.NOT-PROFILEABLE
Zielpaket
$packageName
wird ausgeführt, ohne<profileable shell=true>
. Die Funktion „Profilerstellung“ ist für Android 10 und 11 erforderlich damit MacroBenchmark detaillierte Trace-Informationen vom Ziel wie z. B. die in der App definierten Abschnitte zur Systemverfolgung oder Bibliotheken. Unterdrücken Sie diesen Fehler nur mit äußerster Vorsicht.METHOD-TRACING-ENABLED
Bei der Macro-Benchmark-Ausführung der App, für die ein Benchmarking durchgeführt wird, wird Methoden-Tracing verwendet. aktiviert. Dies führt dazu, dass die VM langsamer als üblich ausgeführt wird. Berücksichtigen Sie daher die Messwerte aus den Trace-Dateien relativ zueinander, z. B. und vergleichen, wie schnell der erste Durchlauf ist. Dies wird unterdrückt kann zu ungenauen Ergebnissen führen, wenn Sie Benchmarks mit verschiedenen Optionen für das Methoden-Tracing.
Standardwert: eine leere Liste
additionalTestOutputDir
Konfiguriert, wo JSON-Benchmarkberichte und Profilergebnisse gespeichert werden .
- Argumenttyp: Pfadstring
- Standardeinstellung: Externes Verzeichnis des Test-APKs
Empfehlungen für dich
- Hinweis: Der Linktext wird angezeigt, wenn JavaScript deaktiviert ist.
- Argumente zur MikroBenchmark-Instrumentierung
- Baseline-Profile erstellen
- JankStats-Bibliothek