Perfetto – Tool für System-Profiling, App-Tracing und Trace-Analyse
(github.com/google)- Eine von Google federführend entworfene und entwickelte Open-Source-Plattform mit dem Ziel eines Tracing-Stacks der nächsten Generation für Systeme
- Beobachtet den Ausführungsfluss komplexer Systeme auf Tracing-Basis, um die Ursachen von Performance- und Funktionsproblemen zu analysieren
- Produktionsreife Stabilität und Performance, da es als Standard-Tracing-System für das Android-Betriebssystem und den Chromium-Browser eingesetzt wird
- Sammelt über einen hochperformanten Tracing-Daemon Ereignisse aus mehreren Prozessen und Threads in einem einzigen integrierten Trace
- Bietet ein C++17-SDK mit geringem Overhead, um Timing- und Zustandsänderungen in User-Space-Anwendungen präzise zu instrumentieren
- Erfasst über Probes auf Betriebssystemebene den Systemkontext von Android und Linux, darunter Scheduling, CPU-Frequenz, Speicher und Call-Stacks
- Browserbasierte UI zur timeline-orientierten Visualisierung und interaktiven Untersuchung großer Traces
- Läuft ohne separate Installation in gängigen Browsern und unterstützt auch das Öffnen verschiedener externer Trace-Formate
- Enthält eine SQL-basierte Analyse-Engine, mit der sich Traces wie Daten abfragen und benutzerdefinierte Metriken extrahieren lassen
- Die offizielle Dokumentation ist auf perfetto.dev verfügbar und bietet stufenweise aufgebaute Leitfäden für Einsteiger bis Fortgeschrittene
- Ein offenes Projekt, das die Google Open-Source-Community-Richtlinien einhält
Warum Perfetto verwenden
- Android-App- und Plattform-Entwickler können die Grundursachen von Performance-Problemen wie verzögertem App-Start, Frame-Drops und ANRs strukturiert analysieren
- C/C++-Entwickler können mit dem Tracing SDK Ausführungspfade von Anwendungen instrumentieren und Engpässe präzise identifizieren
- Linux-Kernel- und Systementwickler können auf
ftracebasierende Kernel-Ereignisse visualisieren und Scheduling, Systemaufrufe sowie Interrupt-Verhalten analysieren - Chromium-Entwickler verwenden Perfetto als Backend von
chrome://tracing, um das interne Verhalten von Browser, V8 und Blink zu debuggen - Performance Engineers und SREs können verschiedene Formate wie Linux perf, macOS Instruments und Chrome JSON trace per SQL integriert analysieren
2 Kommentare
Auch in dem vor Kurzem erschienenen Beitrag Meta zeigt Profiling-Material mit Perfetto in „Linux-Scheduler, entworfen für Valves Steam Deck, auf großen Servern“ | GeekNews wird Profiling-Material mit perfetto gezeigt.
Ich habe es in anderen Beiträgen öfter gesehen, aber bei GeekNews wurde es anscheinend nicht richtig vorgestellt, deshalb poste ich es lieber spät als nie ;)
Meine Lieblingssammlung von Tracing-Tools: eBPF, QEMU, Perfetto