Sie können Profile auf zwei Arten erfassen: manuell und über die ProfilingManager API.
- Bei der manuellen Profilerstellung wird Perfetto manuell auf Ihrem lokalen Gerät ausgeführt, um Profile aufzuzeichnen. Sie können dies mit Befehlen tun, wie unter System-Traces mit Perfetto aufzeichnen beschrieben, oder mit der Kachel für die Schnelleinstellungen, wie unter Mit der Kachel für die Schnelleinstellungen aufzeichnen beschrieben.
- Mit
ProfilingManagerkönnen Apps Profile in der Produktion erfassen.
Wir empfehlen die Verwendung von ProfilingManager zum Erheben und Analysieren von Daten vieler Nutzer oder zum Debuggen seltener Probleme. Bei Problemen, die sich leichter reproduzieren lassen, ist die manuelle Profilerstellung jedoch möglicherweise die bessere Wahl.
In der folgenden Tabelle sehen Sie, wie sich die beiden Methoden zum Aufzeichnen von Profilen unterscheiden:
| ProfilingManager | Manuelle Profilerhebung | |
|---|---|---|
| Steuerung des Profiltimings | Mehr | Weniger |
| Profilquelle | Lokales Gerät und öffentliche Nutzer | Nur lokales Gerät |
| Profilausgabe | Entfernt | Nicht geschwärzt |
| Ereignisbasierte Profilerstellung | Ja | Nein |
| Anpassbarkeit des Profils | Weniger | Mehr |
| Skalierbarkeit | Hoch | Geringe Anzahl |
In den folgenden Abschnitten werden die Unterschiede zwischen den Methoden zur Profilaufzeichnung kurz beschrieben.
Steuerung des Profiltimings
Die ProfilingManager API bietet mehr Kontrolle darüber, wann ein Profil von einer App gestartet oder beendet wird, als bei der manuellen Profilerstellung, bei der die Initialisierung des Timing-Profils schwierig sein kann. ProfilingManager erleichtert auch das Profiling von unerwartetem Verhalten, da Sie ein Profil erstellen können, auch wenn Sie das Verhalten nicht lokal reproduzieren können.
Profilquelle
Mit ProfilingManager können Sie Daten von öffentlichen Nutzern erfassen, um Leistungsprobleme zu finden und zu beheben. Beim manuellen Profiling können Sie Probleme dagegen nur auf Ihrem eigenen Gerät reproduzieren.
Profilausgabe
Bei ProfilingManager und der manuellen Erfassung werden unterschiedliche Arten von Profilausgaben generiert:
ProfilingManagererstellt anonymisierte Traces. In anonymisierten Traces werden Informationen zum Prozess Ihrer App angezeigt, Daten aus anderen Apps im System werden jedoch ausgeblendet. DaProfilingManagerDaten erhebt und entfernt, bevor sie zurückgegeben werden, können Sie Traces von öffentlichen Nutzern erfassen und gleichzeitig die Privatsphäre der Nutzer schützen, indem Sie keine Daten aus anderen Apps anzeigen.Bei der manuellen Profilerstellung werden nicht anonymisierte Traces erzeugt. Wenn Sie einen System-Trace manuell aufzeichnen, kann die Ausgabe alle Prozesse enthalten, die auf dem System ausgeführt werden. Diese nicht geschwärzten Traces bieten zwar vollständigere Daten für das Debugging, aber aus Datenschutzgründen können Sie nur lokal darauf zugreifen.
Ereignisbasiertes Profiling
ProfilingManager kann auch Profile erfassen, wenn bestimmte Ereignisse eintreten, z. B. ein „App antwortet nicht“-Fehler (ANR) oder ein App-Start. ProfilingManager
übernimmt das Starten und Beenden von Profilen für die ereignisbasierte Erhebung.
Anpassbarkeit des Profils
Die manuelle Profilerstellung bietet die meisten Anpassungsmöglichkeiten, während ProfilingManager weniger Anpassungsoptionen bietet.
Skalierbarkeit
ProfilingManager ist die beste Möglichkeit, das Tracing zu skalieren, da App-Entwickler damit Profile von öffentlichen Nutzern aufzeichnen können. Mit ProfilingManager können Sie die Erfassung und Analyse von Traces im großen Maßstab einrichten.
Die manuelle Profilerstellung ist auf die lokale Verwendung beschränkt.