Mithilfe von Benchmarking können Sie die Leistung Ihrer App überprüfen und überwachen. Ich können regelmäßig Benchmarks durchführen, um Leistungsprobleme zu analysieren und zu beheben, dass Sie bei kürzlichen Änderungen keine Regressionen eingeführt haben.
Android bietet zwei Benchmarking-Bibliotheken und -Ansätze zur Analyse und Prüfung verschiedener Situationen in Ihrer App: Macrobenchmark und Microbenchmark.
Makro-Benchmark
Mit der Macrobenchmark-Bibliothek werden größere Endnutzerinteraktionen gemessen, z. B. das Starten, die Interaktion mit der Benutzeroberfläche und Animationen. Die Bibliothek bietet direkte Kontrolle über die zu testende Leistungsumgebung. 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. Daher sollten Sie beim Verfassen der Benchmarks Sie rufen nicht den App-Code direkt auf, sondern navigieren in der App Nutzer.
Mikro-Benchmark
Mit der MicroBenchmark-Bibliothek können Sie den App-Code direkt in einer Schleife messen. Dies wurde für die Messung der CPU-Arbeit entwickelt, mit der die Leistung des Best-Case bewertet wird, z. B. wie Just in Time (JIT) und Laufwerkzugriffe im Cache gespeichert. eine innere Schleife oder eine bestimmte Heißfunktion. Die Bibliothek kann nur den Code messen, den Sie direkt aufrufen können.
Wenn Ihre Anwendung eine komplexe Datenstruktur verarbeiten muss oder eine bestimmte
rechenintensiven Algorithmus, der während der Ausführung
der App mehrmals aufgerufen wird,
könnten dies gute Fälle
für das Benchmarking sein. Sie können auch Teile Ihrer Benutzeroberfläche messen. Sie können beispielsweise die Kosten der RecyclerView
-Artikelbindung messen,
wie lange es dauert, ein Layout zu inblähen, oder wie anspruchsvoll
des Bestehens Ihrer View
-Klasse ist aus Leistungssicht.
Sie können jedoch nicht messen, wie die verglichenen Fälle zur Nutzerfreundlichkeit insgesamt beitragen. In einigen Szenarien lässt sich aus dem Benchmarking z. B. Verzögerungen oder App-Startzeiten. Aus diesem Grund Es ist wichtig, diese Engpässe zuerst mit dem Android Profiler zu identifizieren. Nachdem Sie den zu untersuchenden und zu optimierenden Code gefunden haben, Loop kann schnell und einfach wiederholt ausgeführt werden, damit es weniger laut ist. So können Sie sich auf einen Bereich der Verbesserung konzentrieren.
Die MicroBenchmark-Bibliothek enthält nur Informationen zu Ihrer App, nicht zu für das gesamte System. Daher eignet er sich am besten zur Analyse der Leistung in Situationen, die spezifisch für die App sind, nicht für solche, die sich auf allgemeine Systemprobleme beziehen.
Vergleich der Benchmarkbibliothek
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 für vollständige | In-Process-Test der CPU-Arbeit. |
Geschwindigkeit | Mittlere Iterationsgeschwindigkeit. Das kann länger als eine Minute dauern. | Schnelle Iterationsgeschwindigkeit Häufig weniger als 10 Sekunden. |
Nachverfolgung | Die Ergebnisse enthalten Profiling-Traces. | Optionale Stichprobenerhebung und -verfolgung. |
Empfehlungen für dich
- Hinweis: Der Linktext wird angezeigt, wenn JavaScript deaktiviert ist.
- Baseline-Profile erstellen {:#creating-profile-rules}
- JankStats-Bibliothek
- App-Leistung messen