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 daher 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, die Zeit, die zum Aufblasen eines Layouts benötigt wird, oder die Leistungsanforderungen des Layout- und Analyse-Passes Ihrer View-Klasse messen.

Sie können jedoch nicht messen, wie die verglichenen Fälle 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 er sich am besten zur Analyse der Leistung in app-spezifischen Situationen, nicht in solchen, 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 Einstiegspunkte oder Interaktionen auf hoher Ebene, z. B. das Starten einer Aktivität oder das Scrollen durch eine Liste. Einzelne Funktionen analysieren
Aufgabenstellung Out-of-Process-Test der vollständigen App. In-Process-Test der CPU-Arbeit.
Geschwindigkeit Mittlere Iterationsgeschwindigkeit. Das kann länger als eine Minute dauern. Schnelle Iterationsgeschwindigkeit. Oft weniger als 10 Sekunden.
Nachverfolgung Die Ergebnisse enthalten Profiler-Traces. Optionale Stichprobenerhebung und -verfolgung.