Benchmark für deine App

Mithilfe von Benchmarks können Sie die Leistung Ihrer App prüfen und überwachen. Sie können regelmäßig Benchmarks ausführen, um Leistungsprobleme zu analysieren und zu beheben und dafür zu sorgen, dass durch die letzten Änderungen keine Rückschritte auftreten.

Android bietet zwei Benchmarking-Bibliotheken und -Ansätze zur Analyse und Prüfung verschiedener Situationen in Ihrer App: Macrobenchmark und Microbenchmark.

Makrobenchmark

Mit der Macrobenchmark-Bibliothek werden größere Endnutzerinteraktionen gemessen, z. B. das Starten, die Interaktion mit der Benutzeroberfläche und Animationen. Die Bibliothek bietet eine direkte Steuerung der Testumgebung. Sie können damit die Kompilierung steuern und Ihre App starten und beenden, um den tatsächlichen App-Start oder das Scrollen direkt zu messen.

Die Macrobenchmark-Bibliothek fügt Ereignisse ein und überwacht die Ergebnisse extern über eine Test-App, die mit Ihren Tests erstellt wurde. Beim Erstellen der Benchmarks rufen Sie den App-Code also nicht direkt auf, sondern navigieren als Nutzer durch Ihre App.

Mikrobenchmark

Mit der Microbenchmark-Bibliothek können Sie App-Code direkt in einer Schleife benchmarken. Dieser Wert ist für die Messung der CPU-Arbeit vorgesehen, bei der die Bestleistung bewertet wird, z. B. vorgewärmte Just-in-Time-Daten (JIT) und im Cache gespeicherte Laufwerkzugriffe, die bei einem inneren Loop oder einer bestimmten Hot-Funktion auftreten können. ​​Die Bibliothek kann nur den Code messen, den Sie direkt aufrufen können.

Wenn Ihre App eine komplexe Datenstruktur verarbeiten muss oder einen bestimmten rechenintensiven Algorithmus enthält, der während der Ausführung der App mehrmals aufgerufen wird, sind das gute Anwendungsfälle für Benchmarks. Sie können auch Teile Ihrer Benutzeroberfläche messen. Sie können beispielsweise die Kosten der RecyclerView-Elementbindung messen, wie lange es dauert, ein Layout zu inblähen, oder wie hoch die Leistung nach Layout- und Messwertdurchlauf Ihrer View-Klasse ist.

Sie können jedoch nicht messen, wie die Fälle im Benchmark-Vergleich zur Nutzerfreundlichkeit insgesamt beitragen. In einigen Fällen können Sie mithilfe von Benchmarks nicht feststellen, ob Sie ein Engpassproblem wie Ruckler oder die App-Startzeit verbessern. Aus diesem Grund ist es wichtig, diese Engpässe zuerst mit dem Android-Profiler zu identifizieren. Nachdem Sie den Code gefunden haben, den Sie untersuchen und optimieren möchten, kann die gebenchmarkte Schleife schnell und einfach wiederholt ausgeführt werden, um weniger fehlerhafte Ergebnisse zu erzielen. So können Sie sich auf einen Bereich der Verbesserung konzentrieren.

Die Microbenchmark-Bibliothek meldet nur Informationen zu Ihrer App, nicht zum gesamten System. Daher eignet sie sich am besten, um die Leistung von Anwendungssituationen zu analysieren, und nicht in Situationen, die sich auf allgemeine Systemprobleme beziehen.

Vergleich der Benchmark-Bibliothek

Makrobenchmark Mikrobenchmark
API-Version 23 und höher 14 und höher
Funktion Messen Sie allgemeine Einstiegspunkte oder Interaktionen, z. B. den Start von Aktivitäten oder das Scrollen in einer Liste. Einzelne Funktionen analysieren
Aufgabenstellung Out-of-Process-Test der vollständigen App. In-Process-Test der CPU-Arbeit.
Geschwindigkeit Mittlere Iterationsgeschwindigkeit. Er kann eine Minute überschreiten. Schnelle Iterationsgeschwindigkeit. Oft kürzer als 10 Sekunden.
Nachverfolgung Die Ergebnisse enthalten Profiling-Traces. Optionale Stichprobenerhebung und -verfolgung.