📣 Releasing Perfetto v54.0

8 views
Skip to first unread message

S Ashwin Balaji

unread,
Mar 16, 2026, 8:45:46 AM (10 days ago) Mar 16
to Perfetto Development - www.perfetto.dev

We’re excited to announce Perfetto v54.0! 

This release brings a massive new visual Data Explorer, official Debian packaging, powerful UI snapping capabilities, and a much smoother trace recording experience.

📈 Data Explorer

The Data Explorer is a visual query builder that lets you construct analysis pipelines by connecting nodes in a graph. Instead of writing SQL from scratch, you pick data sources, add transformations, and see results updated in real time in an interactive table.

A complete launch announcement is coming soon!

4bLN5XaqdTTzwQb.png

🍥 Official Debian Package

Perfetto is now officially packaged for Debian! You can easily install Perfetto and its tracing tools directly from the package manager.

Check it out: Debian Tracker.

⚙️ Recording & Config Improvements

We've made it much easier to configure and share trace recordings directly from the UI:

  • Preset Configs: We've added built-in preset configurations to easily set up traces for common system health problems on Android and Chrome.
  • Import & Export Configs: You can now upload your own custom trace .config files or download your generated configs with a single click directly from the recording page, making it incredibly easy to share setups or run them via the CLI.
record.png

🖥️ UI Enhancements

  • Snap-to-Boundaries: Achieve pixel-perfect precision! When dragging selection handles or creating area selections, your cursor will now automatically snap to nearby slice boundaries. This enables exact measurements of slice durations. Hold Alt to temporarily disable snapping. Learn more
  • Advanced DataGrid: The table viewer is more powerful than ever. We've added configurable pivot table support, new globcontains, and not-contains filters, and a distinct value picker for much faster data filtering.
  • Revamped Heap Profiles: Heap profile rendering has been completely redesigned. Instead of a single arrow pointing to a snapshot, it now uses a slice representing the entire time period covered since the last snapshot, and fully supports aggregation on area selections.
  • Direct Public Trace Links: You can now open any public-readable https:// trace directly via the url= parameter. Learn more.

📊 Profile & Trace Formats

  • External Profiles: Perfetto now natively supports Brendan Gregg's Collapsed Stack format and the Firefox Profiler's preprocessed JSON format. Learn more
  • R8 Retracing: Trace Processor now supports R8 retracing during deobfuscation, significantly improving the readability of Android profiling data. Learn more

🛠️ Tracing & Analysis Improvements

  • Named Buffers: You can now conveniently refer to target buffers by their name rather than having to remember their index. Learn more
  • Android User List: A new android.user_list data source has been added to easily track and list Android users in your traces. Learn more 
  • Perf Sample Counters:: Added perf_sample_with_counters to the standard library. This makes it easy to correlate sample callstacks with their associated counter values, allowing perf event flamegraphs to be weighted by event values rather than just sample counts. Learn more
  • Android Analysis: Added intent and component details to the android_anrs table, and introduced new weighted jank metrics to the standard library.

⚠️ Breaking Changes & SDK Distribution

  • SDK Artifact Move: The amalgamated C and C++ tracing SDKs are no longer available in the Git release branches. They have moved to standard .zip archives (perfetto-c-sdk-src.zip and perfetto-cpp-sdk-src.zip) located directly on our GitHub release pages and also as part of luci artifacts under sdk directory.
  • Virtual Machine Tracing: For traced_relay users, data sources no longer match remote machine producers by default. To restore the previous behavior and collect data across boundaries, set TraceConfig.trace_all_machines to true.
  • Trace Processor Schema:
    • machine_id is now a non-nullable column in all tables (the host machine is represented by 0 instead of NULL).
    • The metadata table has been refactored to support multi-trace and multi-machine traces.
    • The stack_id and parent_stack_id columns were removed from the slice table and moved to the slices.stack stdlib module. See migration guidance.
    • TrackEvent log messages are now parsed into track_event.log_message.message to ensure valid JSON conversion.
  • Flushing Behavior: Removed TraceConfig.no_flush_before_write_into_file and replaced it with a write_flush_mode enum to provide more granular control over flushing when streaming traces into a file.

Happy Tracing!


A huge thanks to everyone, both inside and outside of Google, who contributed to making Perfetto v54 a success. ♥️

For complete details, see the changelog or view all changes on GitHub.

Download Perfetto v54.0 from our releases page, get started at docs.perfetto.dev, or try the UI directly at ui.perfetto.dev.

Reply all
Reply to author
Forward
0 new messages