Instrumentierungsargumente hinzufügen

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:

  1. Bearbeiten Sie die Ausführungskonfiguration, indem Sie auf Bearbeiten und dann auf Konfiguration. <ph type="x-smartling-placeholder">
    </ph> Ausführungskonfiguration bearbeiten
    Abbildung 1: Bearbeiten Sie die Ausführungskonfiguration.
  2. Bearbeiten Sie die Instrumentierungsargumente, indem Sie auf Mehr von Instrumentierungsargumente. <ph type="x-smartling-placeholder">
    </ph> Instrumentierungsargumente bearbeiten
    Abbildung 2: Instrumentierung bearbeiten Argumente.
  3. Fügen Sie das erforderliche Instrumentierungsargument hinzu, indem Sie auf Hinzufügen unter Instrumentierung Zusätzliche Parameter. <ph type="x-smartling-placeholder">
    </ph> Erforderliches Instrumentierungsargument hinzufügen
    Abbildung 3: Erforderliche Instrumentierung hinzufügen Argumentieren.

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 mit debuggable=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: mit debuggable=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