Production-grade client-side tracing, profiling, and analysis for complex softwa...
P

Production-grade client-side tracing, profiling, and analysis for complex softwa...

Production-grade client-side tracing, profiling, and analysis for complex softwa...

CLI
6,154 stars
N/A forks
N/A contributors

README

Project documentation from GitHub

Perfetto: Production-Grade Tracing for Complex Systems

Ever felt like you're debugging a complex system with a blindfold on? You know there are performance bottlenecks, race conditions, or weird UI jank, but your standard logging and basic profiler just aren't cutting it. You need to see the whole picture—how every thread, process, and system resource interacts over time.

That's where Perfetto comes in. It's not just another profiler; it's a comprehensive platform for performance instrumentation and trace analysis, built to handle the scale and complexity of modern software. Originally developed at Google for Android and Chrome, it's now open-source and ready to bring production-grade observability to your projects.

What It Does

Perfetto is a suite of tools for system-wide performance tracing. At its core, it collects detailed timelines of what's happening across your entire software stack—from the kernel and system services up to your application code. It then lets you visualize and analyze these traces in a powerful web-based UI.

Think of it as a flight data recorder for your software. It can track CPU scheduling, memory allocations, filesystem activity, power management, custom application events, and much more, all correlated on a single, searchable timeline.

Why It's Cool

The magic of Perfetto is in its design for real-world, complex systems. Here’s what sets it apart:

  • System-Wide Visibility: It doesn't just profile your app in isolation. It can trace concurrent processes, the kernel, GPU activity, and hardware counters, giving you the context you need to solve tricky, multi-layered problems.
  • Production Ready: It's built with minimal overhead, allowing for longer tracing sessions on real devices. This means you can catch issues that only happen after hours of use or under specific conditions.
  • Extensible & Flexible: You can instrument your own code with its Track Event library, adding custom trace points that show up alongside all the low-level system data. The trace format is also protobuf-based and well-documented.
  • Powerful Web UI: The analysis isn't an afterthought. The Perfetto UI is a full-featured investigative tool. You can zoom, slice, search, create summary metrics, and share links to specific points in a trace.

How to Try It

The easiest way to get a feel for Perfetto is to jump straight into the UI with a sample trace.

  1. Head over to the Perfetto UI.
  2. Click "Open trace file" in the left-hand menu.
  3. You can drag and drop your own trace (if you've already generated one) or download a

Did you like this issue?

Join our weekly newsletter

Related Projects

Love discovering amazing projects?

Help us continue bringing you the best open-source discoveries every week.

Back to Projects
Last updated: Dec 16, 2025