Perfetto

Google · Google.Perfetto

Performance instrumentation and tracing for Android, Linux and Chrome.

winget install --id Google.Perfetto --exact --source winget

Latest 54.0

Release Notes

v54.0 - 2026-02-27: Tracing service and probes: * Breaking change: Removed TraceConfig.no_flush_before_write_into_file and replaced it with TraceConfig.write_flush_mode enum to provide more granular control over flushing behavior when streaming traces into a file. * Breaking change for traced_relay users: data sources no longer match remote machine producers by default. To restore the previous behaviour, set TraceConfig.trace_all_machines to true. * Added perfetto --no-clobber CLI option to prevent overwriting existing files. * Fixed a bug that would cause remote producers (data sources in VMs) to lose data on the end of the trace due to lack of scraping. * Added android.user_list data source to list Android users. * Added support for FWTP counter traces and fwtp_perfetto_slice ftrace event. * Added suppport for referring to target buffers by name rather than index. Trace Processor: * Added support for Collapsed Stack format (from Brendan Gregg's FlameGraph tools). This format uses semicolon-separated stack frames with a count, e.g., "main;foo;bar 100". * Added support for Firefox Profiler's preprocessed JSON format. * Removed deprecated RegisterSqlModule() C++ API (use RegisterSqlPackage() instead) and --add-sql-module/--override-sql-module shell flags (use --add-sql-package/--override-sql-package instead). These were deprecated in v48.0. * Added support for specifying custom package names in --add-sql-package and --override-sql-package flags using PATH[@PACKAGE] syntax. The Python API now provides a SqlPackage class for typed configuration. * Breaking change: Removed stack_id and parent_stack_id columns from the slice table. The ancestor_slice_by_stack and descendant_slice_by_stack table functions have been moved to the slices.stack stdlib module. These features were poorly named and often misused. See https://perfetto.dev/docs/analysis/perfetto-sql-backcompat for migration guidance. * Breaking change: TrackEvent log messages are now parsed into "track_event.log_message.message" arg instead of "track_event.log_message" to ensure that arg set can be converted into a valid json. * Breaking change: machine_id is now a non-nullable column in all Trace Processor tables. The host machine is now consistently represented by 0 instead of NULL. * Breaking change: Refactored the metadata table to support multi-trace and multi-machine traces. Added trace_id and machine_id columns to associate entries with their specific context. * Added support for R8 retracing during deobfuscation. Improves deobfuscation quality for some supported profiling types. SQL Standard library: * Added heap_graph_stats module and added dmabuf support. * Added intent and component columns to android_anrs table. * Added relevant threads jank CUJ module and counter-based weighted jank metrics. UI: * Added support for opening any public-readable https:// trace using url= parameter. See https://perfetto.dev/docs/visualization/deep-linking-to-perfetto-ui#option-1-direct-url-for-public-traces for more information. * Changed the way heap profiles are rendered: rather than an arrow with a snapshot from start, use a slice that represents the time period covered since the last snapshot. Also support aggregation on area selection. * Added summary tracks for slice tracks and merged them with scheduling summaries. * Added present configs to the recording page to allow easy configuration of traces for common system health problems on Android and Chrome. * Added capability to download trace config files in one click from the recording page. * Landed various improvements for DataGrid (table viewer component): * Added configurable pivot table support. * Added glob, contains, and not-contains filters. * Added a distinct value picker for filters. * Added snap-to-boundaries feature for precise time selection. When dragging selection handles or creating area selections, the cursor automatically snaps to nearby slice boundaries to enable exact measurement of slice durations. Hold Alt to temporarily disable snapping. * Performance optimizations: * Improved dataset search performance * Optimized visualization of argument values. * Reduced jank when panning/zooming on busy tracks. SDK: * Added inotify support for UNIX sockets: if traced is unavailable or crashes, on Linux and Android we reconnect immediately after the socket has been recreated rather than relying on periodic retries. * Added ClearIncrementalState method to data source traits to allow data sources to have custom clearing logic instead of creating/destroying state on every clear. Misc: * Added automatic detection of profile type when using traceconv profile. * Upgraded standalone Bazel version to 8.5.0. * Switched Bazel usage to be fully based on bzlmod as, on Bazel 8, WORKSPACE builds are no longer supported.

Installer type: zip

Architecture Scope Download SHA256
x64 Download 4D828E3BD1213FA9C468D02D1ECA9CC474233026217B6EE9D7F292105B86CF47

Details

Homepage
https://github.com/google/perfetto
License
Apache-2.0
Publisher
Google
Support
https://github.com/google/perfetto/issues

Older versions (7)

53.0
Architecture Scope Download SHA256
x64 Download 2D4ECE71234CDF783710D83CF4783DCE3E5E745AD40ECE649F95CF208A1A897C
52.0
Architecture Scope Download SHA256
x64 Download 37A837AE7BA9D133E231D0C4D59C6313F1D5028E515AB700FAF037D77469F994
51.2
Architecture Scope Download SHA256
x64 Download EA54BE4969DA65C2BC46191810416D8CAC11617AD49E84E27C55C20EC3834306
51.1
Architecture Scope Download SHA256
x64 Download ED3171FFF3D207629DCA3733FF91CC39AAEBAC96B701F4780E053E9508DF5835
50.1
Architecture Scope Download SHA256
x64 Download FC8DA574993C52A2615C727CA779BCE4A0BF0B49BD07743BE627C034A0AA3EE3
49.0
Architecture Scope Download SHA256
x64 Download BBD9ADE28127FA7CD96E9F24BFE2B386E252059F02EF5471B4711587C4361E5D
34.0
Architecture Scope Download SHA256
x64 Download FAE66B8529C5193B8C3341E8983219114F27BA0747510F33CC3FC719429479E4