perfetto
ist ein Tool, mit dem Sie Leistungsinformationen von
Android-Geräte über das
Android Debug Bridge (ADB): Rufen Sie die Methode
perfetto
-Tool mit dem Befehl adb shell perfetto ...
.
perfetto
verwendet verschiedene
Quellen zur Erfassung von Leistungs-Traces von Ihrem Gerät, z. B.:
ftrace
für Informationen vom Kernelatrace
für die Anmerkung zum Nutzerbereich in Diensten und Appsheapprofd
für Informationen zur nativen Arbeitsspeichernutzung von Diensten und Apps
Auf dieser Seite wird beschrieben, wie Sie perfetto
aufrufen und so konfigurieren, dass die Methode
gewünschte Ausgabe. Weitere Informationen finden Sie in der
Dokumentation zu perfetto
Syntax
In diesem Abschnitt wird beschrieben, wie du mit ADB perfetto
für verschiedene Modi aufrufen kannst
und generieren einen Trace.
Auswahl der Datenquelle
perfetto
enthält die folgenden zwei Modi, die die Datenquellen bestimmen
wird der Trace damit aufgezeichnet:
- Heller Modus: Es können nur bestimmte Datenquellen ausgewählt werden, insbesondere
atrace
. undftrace
. Dieser Modus bietet jedoch eine Oberfläche, diesystrace
- Normalmodus: Die Konfiguration erfolgt in einem Protokollzwischenspeicher.
Nutzen Sie mehr Funktionen von
perfetto
, indem Sie Datenquellen vonatrace
undftrace
.
Allgemeine Optionen
In der folgenden Tabelle sind die verfügbaren Optionen aufgeführt, wenn Sie perfetto
in einem der folgenden Typen verwenden:
Modus:
Option | Beschreibung |
---|---|
--background |
|
perfetto beendet sofort die Befehlszeile und fährt fort
den Trace im Hintergrund aufzeichnen. |
--background-wait | -D
|
Wie --background , aber es wird bis zu 30 Sekunden gewartet
die vor dem Schließen gestartet werden sollen. Beenden
ist Null, wenn eine erfolgreiche Bestätigung
empfangen, andernfalls nicht Null (Fehler oder Zeitüberschreitung).
|
--alert-id
|
ID der Benachrichtigung, die diesen Trace ausgelöst hat. |
--config-id
|
ID der auslösenden Konfiguration. |
--config-uid
|
UID der App, in der die Konfiguration registriert wurde. |
--subscription-id
|
ID des Abos, das diesen Trace ausgelöst hat. |
--out OUT_FILE |
|
Gibt den gewünschten Pfad zur Trace-Ausgabedatei oder zu Hinweis: Sie müssen den vollständigen Pfadnamen des
Ausgabedatei. Normalerweise sollten die Dateien im
Ordner „ |
--upload
|
Übergibt den Trace nach Abschluss an das Paket, das durch die
IncidentReportConfig -Nachricht in der Proto-Trace-Konfiguration. |
--no-guardrails
|
Deaktiviert den Schutz vor übermäßiger Ressourcennutzung beim Aktivieren der
Das Flag --upload während des Tests. |
--reset-guardrails
|
Setzt den persistenten Status der Schutzmaßnahmen und Exits für Tests zurück. |
--rsave-for-bugreport
|
Wenn ein Trace mit bugreport_score > 0 läuft,
speichert den Trace in einer Datei. Gibt den Pfad nach Abschluss aus.
|
--query
|
Fragt den Dienststatus ab und gibt ihn als menschenlesbaren Text aus. |
--query-raw
|
Ähnlich wie --query , gibt jedoch Proto-codierte Rohbyte von Byte aus
tracing_service_state.proto. |
--help | -h
|
Druckt einen Hilfetext für das perfetto -Tool aus.
|
Heller Modus
Die allgemeine Syntax für die Verwendung von perfetto
im hellen Modus lautet so:
adb shell perfetto [ --time TIMESPEC ] [ --buffer SIZE ] [ --size SIZE ] [ ATRACE_CAT | FTRACE_GROUP/FTRACE_NAME | FTRACE_GROUP/* ]... --out FILE
In der folgenden Tabelle sind die verfügbaren Optionen bei Verwendung von perfetto
in
heller Modus:
Option | Beschreibung |
---|---|
--time TIME[s|m|h] |
|
Gibt die Trace-Dauer in Sekunden, Minuten oder Stunden an.
Beispielsweise gibt --time 1m eine Trace-Dauer von 1 Minute an.
Die Standarddauer beträgt 10 Sekunden.
|
--buffer SIZE[mb|gb] |
|
Gibt die Größe des Ringpuffers in Megabyte (MB) oder Gigabyte (GB) an.
Der Standardparameter ist --buffer 32mb .
|
--size SIZE[mb|gb] |
|
Gibt die maximale Dateigröße in Megabyte (MB) oder Gigabyte (GB) an. Von
Standardmäßig verwendet perfetto nur einen Ringpuffer im Arbeitsspeicher.
|
--app | -a
|
Name der Android-App (atrace) |
Diesen Optionen folgt eine Liste von Ereignisspezifizierern:
Veranstaltung | Beschreibung |
---|---|
ATRACE_CAT |
Gibt die atrace -Kategorien an, für die Sie einen Trace aufzeichnen möchten.
Der folgende Befehl verfolgt beispielsweise den Fenstermanager mit atrace :
adb shell perfetto --out FILE wm
Informationen zum Aufzeichnen anderer Kategorien findest du hier:
Liste
von |
FTRACE_GROUP/FTRACE_NAME |
Gibt die ftrace -Ereignisse an, für die Sie einen Trace aufzeichnen möchten.
Der folgende Befehl erfasst beispielsweise sched/sched_switch -Ereignisse:
adb shell perfetto --out FILE sched/sched_switch |
Normaler Modus
Die allgemeine Syntax für die Verwendung von perfetto
im normalen Modus lautet so:
adb shell perfetto [ --txt ] --config CONFIG_FILE --out FILE
In der folgenden Tabelle sind die verfügbaren Optionen bei Verwendung von perfetto
in
Normaler Modus:
Option | Beschreibung |
---|---|
--config CONFIG_FILE | -c CONFIG_FILE
|
Gibt den Pfad zu einer Konfigurationsdatei an. Im normalen Modus werden
Konfigurationen in einem Konfigurationsprotokollzwischenspeicher codiert werden können. Diese Datei
muss dem Protokollpufferschema entsprechen, das in
AOSP trace_config.proto .
Wählen und konfigurieren Sie die Datenquellen mithilfe der
|
--txt
|
Weist perfetto an, die Konfigurationsdatei als pbtxt zu parsen. Dieses
Das Flag ist nur für lokale Tests vorgesehen. Es wird nicht empfohlen,
für die Produktion aktivieren. |
Unterstützte Datenquellen
In diesem Abschnitt werden die verschiedenen Quellen beschrieben, die perfetto
zum Generieren von
Ihren Trace.
ftrace
Mit der Datenquelle ftrace
kann perfetto
Ereignisse aus dem Kernel abrufen.
Diese Quelle durch Einstellung aktivieren
ftrace_config
in DataSourceConfig.
Folgende Ereignisse können aktiviert werden:
-
sched/sched_switch
sched/sched_wakeup
sched/sched_wakeup_new
sched/sched_process_exec
sched/sched_process_exit
sched/sched_process_fork
sched/sched_process_free
sched/sched_process_hang
sched/sched_process_wait
Dateisystemereignisse:
Je nach Gerät, Betriebssystemversion oder Kernel können weitere Ereignisse verfügbar. Weitere Informationen finden Sie in den Konfigurationsprotokollen.
Prozessstatistiken
Mit der Datenquelle „Prozessstatistiken“ können Sie abgefragte Zähler zum und einzelnen Prozessen.
Aktivieren Sie diese Quelle, indem Sie process_stats_config
festlegen
und sys_stats_config
in DataSourceConfig.
Zu den von perfetto
generierten Daten gehören:
-
/proc/meminfo
/proc/vmstat
/proc/stat
-
/proc/\<pid\>/status
/proc/\<pid\>/oom_score_adj
Je nach Gerät, Betriebssystemversion und Kernel können weitere Ereignisse
verfügbar. Weitere Informationen finden Sie in den Konfigurationsprotokollen für sys_stats
.
und process_stats
.
heapprofd
Mit heapprofd
können Sie die Ursachen der nativen Speichernutzung abfragen.
Aktivieren Sie diese Quelle, indem Sie heapprofd_config
festlegen
in DataSourceConfig. Diese Einstellung erzeugt ProfilePackets
,
einschließlich der Java-Frames
des Aufrufstacks.
Weitere Informationen zur Verwendung von heapprofd
finden Sie unter
perfetto.dev
Andere Quellen
Je nach Gerät, Betriebssystemversion und Kernel werden möglicherweise weitere Datenquellen verfügbar. Weitere Informationen finden Sie im Konfigurationsprotokolle für Datenquellen.
Weitere Informationen zu perfetto
finden Sie unter
perfetto.dev implementieren.