Mit Benchmarking können Sie die Leistung Ihrer App untersuchen und überwachen. Sie können regelmäßig Benchmarks ausführen, um Leistungsprobleme zu analysieren und zu beheben und um sicherzustellen, dass durch die letzten Änderungen keine Regressionen eingeführt werden.
Android bietet zwei Benchmarking-Bibliotheken und -Ansätze zum Analysieren und Testen verschiedener Situationen in Ihrer App: Makrobenchmark und Mikrobenchmark.
Makro-Benchmark
Mit der Macrobenchmark-Bibliothek werden größere Endnutzerinteraktionen wie Start, Interaktion mit der Benutzeroberfläche und Animationen gemessen. Die Bibliothek bietet eine direkte Steuerung der Leistungsumgebung, die Sie testen. Damit können Sie 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 Ergebnisse extern über eine Test-App, die mit Ihren Tests erstellt wird. Daher rufen Sie beim Schreiben der Benchmarks Ihren App-Code nicht direkt auf, sondern navigieren in Ihrer App wie ein Nutzer.
Mikrobenchmark
Mit der Microbenchmark-Bibliothek können Sie App-Code direkt in einer Schleife benchmarken. Dieser Test ist für die Messung von CPU-Arbeit konzipiert, bei der die Leistung im besten Fall bewertet wird, z. B. bei aufgewärmtem Just-in-Time-Code (JIT) und zwischengespeicherten Festplattenzugriffen, die bei einer inneren Schleife oder einer bestimmten Hot-Funktion auftreten können. Mit der Bibliothek kann nur der Code gemessen werden, den Sie direkt isoliert 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 Benchmarking. Sie können auch Teile Ihrer Benutzeroberfläche messen. Sie können beispielsweise die Kosten für die RecyclerView
-Elementbindung, die Zeit, die zum Aufblähen eines Layouts benötigt wird, oder die Leistungsanforderungen des Layout- und Messdurchlaufs Ihrer View
-Klasse messen.
Sie können jedoch nicht messen, wie die Benchmarking-Fälle zur allgemeinen Nutzerfreundlichkeit beitragen. In einigen Fällen können Sie mit Benchmarking nicht feststellen, ob Sie einen Engpass wie Ruckeln oder die Startzeit der App 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 Benchmark-Schleife schnell und einfach wiederholt ausgeführt werden, um weniger verrauschte Ergebnisse zu erzielen. So können Sie sich auf einen Verbesserungsbereich konzentrieren.
Die Microbenchmark-Bibliothek meldet nur Informationen zu Ihrer App, nicht zum System insgesamt. Daher eignet sich das Tool am besten für die Analyse der Leistung von Situationen, die spezifisch für die App sind, und nicht für Situationen, die mit allgemeinen Systemproblemen zusammenhängen.
Vergleich der Benchmark-Bibliothek
Makro-Benchmark | Mikrobenchmark | |
---|---|---|
API-Version | 23 und höher | 14 und höher |
Funktion | Erfassen Sie allgemeine Einstiegspunkte oder Interaktionen wie das Starten einer Aktivität oder das Scrollen einer Liste. | Einzelne Funktionen analysieren |
Umfang | Out-of-Process-Test der gesamten App. | In-Process-Test der CPU-Arbeit. |
Geschwindigkeit | Mittlere Iterationsgeschwindigkeit. Sie kann länger als eine Minute dauern. | Schnelle Iterationen Oft weniger als 10 Sekunden. |
Nachverfolgung | Die Ergebnisse enthalten Profiling-Traces. | Optionales Sampling und Tracing von Methoden. |
Empfehlungen für dich
- Hinweis: Linktext wird angezeigt, wenn JavaScript deaktiviert ist.
- Baseline-Profile erstellen {:#creating-profile-rules}
- JankStats-Bibliothek
- App-Leistung messen