Perfetto is a production-grade system profiling and tracing suite that captures, visualizes, and analyzes performance data across complex software systems.
Perfetto solves the problem of understanding behavior and diagnosing performance issues in complex systems by combining multiple tracing and profiling capabilities. It works by collecting trace data from application code, operating system kernels, and system daemons into unified trace files, then providing tools to visualize and analyze that data. The suite includes a low-overhead C++17 SDK for instrumenting applications, high-performance tracing daemons for capturing system-wide information, extensive OS-level probes for Android and Linux, a browser-based timeline UI for exploring traces, and a SQL-based query engine for programmatic analysis.
Adoption suits developers across multiple domains: Android app and platform developers debugging performance issues like slow startups or dropped frames; C++ developers on Linux, macOS, and Windows instrumenting applications to find bottlenecks; Linux kernel and system developers analyzing scheduling and syscall behavior; Chromium developers using it as the tracing backend for chrome://tracing; and performance engineers analyzing traces from multiple sources including Linux perf, macOS Instruments, and Chrome JSON traces. The tool distinguishes itself by supporting analysis of profiling formats beyond its own native format, allowing engineers to work with traces from other tools through a unified SQL interface.
The project maintains active development with regular commits across its core components. Work spans the full stack from low-level daemon and SDK improvements to UI enhancements and analysis tooling. The codebase shows ongoing attention to both new feature development and maintenance of existing functionality. Documentation receives consistent updates alongside code changes, indicating sustained effort to keep guidance current with the tool's capabilities.