Repolode
google

google/perfetto

Open-source tracing and profiling suite with SDKs, system daemons and a browser-based UI for analyzing traces on Android, Linux and Chromium.

Open-source alternative to:Instruments

Stars
6,687
Forks
906
Open issues
409
Last commit
6 hours ago

What is it?

Perfetto is a suite of SDKs, daemons and tools for tracing, profiling and analyzing complex software and systems. It is used as the default tracing system for Android and the Chromium browser, and targets root-causing functional and performance issues on client and embedded systems.

The project includes a high-performance tracing daemon that collects trace data from many processes on one machine into a unified trace file, a C++17 tracing SDK for instrumenting application code, and OS-level probes for capturing scheduling states, CPU frequencies, memory profiling and callstack sampling on Android and Linux.

Traces can be opened in a fully local browser UI that works without installation and handles large, multi-GB timelines. A SQL-based analysis library lets you query traces programmatically, and the tooling can also open traces from other formats such as Linux perf, macOS Instruments and Chrome JSON.

Key features

  • 01Unified tracing daemon that collects data from many processes into one trace file.
  • 02Low-overhead C++17 tracing SDK for instrumenting application code.
  • 03OS-level probes for scheduling, CPU frequency, memory and callstack sampling on Android and Linux.
  • 04Local browser UI for exploring large traces on a timeline without installation.
  • 05SQL query engine for automating trace analysis and extracting custom metrics.

Use cases

  • Diagnosing slow app startup, dropped frames and ANRs on Android.
  • Instrumenting a C/C++ application to find performance bottlenecks.
  • Analyzing Linux kernel scheduling, syscalls and interrupts alongside app traces.
  • Converting and inspecting traces from Linux perf, Instruments or Chrome JSON files.

Quick start

  1. 1

    Read the Getting Started guide to find the right tutorial for your role

  2. 2

    Open the browser-based UI to analyze a trace (no installation needed)

Things to know

  • OS-level system probes are described for Android and Linux only.

Topics

FAQ

What is perfetto?
Open-source tracing and profiling suite with SDKs, system daemons and a browser-based UI for analyzing traces on Android, Linux and Chromium. Perfetto is a suite of SDKs, daemons and tools for tracing, profiling and analyzing complex software and systems. It is used as the default tracing system for Android and the Chromium browser, and targets root-causing functional and performance issues on client and embedded systems.
Is perfetto free to use? What license does it have?
perfetto is open source under the Apache-2.0 license. Check the license terms before using it in commercial products.
Is perfetto still maintained?
Actively maintained. The last commit to perfetto was on Oct 22, 2026.
What can I use perfetto for?
Diagnosing slow app startup, dropped frames and ANRs on Android. Instrumenting a C/C++ application to find performance bottlenecks. Analyzing Linux kernel scheduling, syscalls and interrupts alongside app traces. Converting and inspecting traces from Linux perf, Instruments or Chrome JSON files.
How do I install perfetto?
Read the Getting Started guide to find the right tutorial for your role Open the browser-based UI to analyze a trace (no installation needed)
Where can I get perfetto?
The source code and installation instructions are on GitHub: https://github.com/google/perfetto

Summary generated by AI from the project's README. GitHub stats refresh daily.

Related projects