We’re excited to share some highlights from the Perfetto v52 release.
🌙 Dark mode support
The Perfetto UI now features a dark mode with theme-aware colors!

Dark mode can be enabled via"settings" in the left-hand menu: switch the “[Experimental] UI Theme” option to “Dark”.
Note: this feature is still undergoing polish so is marked as experimental. Please file bugs for any readability/accessibility issues you may encounter!
🎛️ Advanced TrackEvent control & visualization
SDK users and developers converting external traces to Perfetto format now have fine-grained control over track display and merging behavior. The new sibling_merge_behavior
and sibling_merge_key
options in TrackDescriptor
allow you to:
- Force tracks with the same name to be displayed separately
- Merge tracks with different names into a single UI track
- Override the default name-based merging logic
Additionally, counter tracks can now share Y-axis ranges using the y_axis_share_key
in CounterDescriptor
, making it easier to compare related metrics with the same units.
Learn more about converting custom data to Perfetto format and more advanced conversion features.
🤖 UI automation: macros & startup commands
Perfetto UI now supports two new features to improve developer productivity:
- Startup commands to automatically configure the analysis environment when traces load
- Macros to add commands built out of other UI commands to the Command Palette
Both features can be found in the UI settings page:

Learn more about UI startup commands and macros and configuring startup commands via URL parameters.
📊 Easily turn kernel trace points into slices and counters
Perfetto now automatically creates structured track visualizations for Linux kernel ftrace events that follow established naming conventions. This feature enables kernel developers to instrument their code with ftrace tracepoints and see them as slices and counters in the Perfetto UI without modifying Perfetto's source code.

Learn more about creating kernel track events with ftrace.
⚡ Trace processor performance & new features
- Faster trace loading: Optimized data structures and MurmurHash implementation result in faster trace loading and query execution
- New analysis tools: The
slice_self_dur
table provides self-duration calculations, while theregexp_extract
function allows parsing data out of strings without complex use of INSTR/SUBSTR - Expanded format support: Added symbolization for kernel frames in Linux perf.data files and support for trace-cmd report output format
📱 Enhanced Android analysis capabilities
- Better ANR debugging: The
anr_type
column in the android_anrs table provides more detailed ANR classification - Bitmap tracking: New
android.bitmaps
module offers timeseries information about bitmap usage - CPU performance insights: Enhanced CPU utilization functions with upid/utid parameters and improved frequency calculations
🎨 General UI improvements & performance
- Bulk track management: Configure multiple tracks simultaneously, saving time when setting up complex analysis views
- Improved plugin architecture: Better isolation and standardized command naming
- Enhanced visualization: Better DataGrid implementation with improved aggregation performance
- Track guidance: New help infrastructure and descriptive text support for better user onboarding
- Optimized track merging: Faster performance when working with large numbers of track_event tracks
📊 Recording & data source improvements
- Enhanced recording UI: Improved recording page with dedicated Perfetto SDK section for configuring track_event data source categories and wildcards
- Advanced ftrace features: Support for exclusive single-tenant features, tracing_cpumask, tracefs options, and TID-based filtering
- GPU monitoring: New support for polling Adreno GPU frequency data
🔧 Additional improvements
- Fixed numerous crashes and performance issues throughout the UI
- Improved WebUSB error messages for better debugging experience
- Enhanced support for persisting state from traces loaded through postMessage
For complete details, see the changelog or view all changes on GitHub.
Download Perfetto v52.0 from our releases page, get started at docs.perfetto.dev, or try the UI directly at ui.perfetto.dev.