Perfetto v55.1 #5863
Pinned
LalitMaganti
announced in
Announcements
Perfetto v55.1
#5863
Replies: 0 comments
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Uh oh!
There was an error while loading. Please reload this page.
-
We're excited to share Perfetto v55.1! Highlights include GPU-accelerated trace rendering, a new Heap Dump Explorer, native Linux heap profiling, a redesigned
trace_processorshell, multi-GPU analysis, and a major docs refresh.⚡ WebGL rendering & virtual track scrolling
Opening big traces (hundreds of processes, thousands of tracks, millions of slices) should be significantly smoother in v55. Two changes drive this:
🧠 Heap Dump Explorer
Investigating Android and Java memory issues gets a significant improvement in Perfetto UI through the new Heap Dump Explorer page. Instead of just showing the flamegraph for the heap dump, this is an interactive exploration tool on the classes, objects and references in the dump. Specifically:
.hprofheap dump).The Java HPROF importer also got a major upgrade: primitive fields, array contents, and Bitmap-specific metadata are now preserved when parsing the traces to power this functionality.
Learn more in the Heap Dump Explorer guide
🐧
heap_profile host: native Linux heap profilingheap_profileis no longer Android-only. The newhostsubcommand lets you capture an allocation-attributed memory profile of a local Linux process and open the result in the same UI:It auto-downloads the bits it needs, launches a bundled daemon, and produces a flamegraph that behaves exactly like the Android equivalent (drill in by stack frame, deobfuscate symbols, etc.). The existing Android workflow lives under
heap_profile androidand is unchanged.Get started with native heap profiling On Linux
🐚 Subcommand-based
trace_processor_shelltrace_processor_shellhas been rebuilt around purpose-built subcommands that read more likegit, replacing the flat-CLI-with-flags model:The
querysubcommand also gained a structured query mode for programmatic callers. Existing scripts that use the classic flat CLI keep working just as it is today but all new functionality will be exposed through subcommands only.New trace_processor subcommand docs
🎮 Multi-GPU support
Trace Processor now models multiple GPUs as first-class citizens. The new
gpuandgpu_contexttables let you slice slice and memory tracks per-GPU and per-machine, so workloads spanning a discrete + integrated pair, a multi-GPU host, or a multi-machine setup attribute correctly all the way through analysis.On the recording side, the GPU data source gained
InstrumentedSamplingConfigfor fine-grained sampling control, custom counter groups inGpuCounterConfig, and CUDA / HIP added to the graphics-context APIs; useful for compute workloads beyond traditional rendering.GPU data source documentation
🐍 Python: polars DataFrame support
The Python
TraceProcessorAPI can now return query results as polars DataFrames as well as pandas.📈 Data Explorer dashboards
The Data Explorer (formerly "Explore") now has a full dashboard environment with side-by-side
GraphandDashboardviews, an in-sidebar chart editor, smarter graph with cycle detection, import/export of dashboards between sessions, and built-in tutorials & solution recipes.📊 New chart types and UI polish
A handful of new chart and aggregation types ship across the UI:
🚀 Tracing service and probes
android.aflagsdata source captures Android aconfig flags in effect during the trace, surfaced through Trace Processor and the UI./proc/slabinfopolling added tosys_statsfor tracking kernel slab allocations.traced_perfgained a CPU filter for per-CPU sampling, and raw perf events can specify a dynamic PMU by name.trace_all_machinesinTraceConfig).🌐 More importers
Perfetto can now ingest more formats end-to-end:
☕ Java SDK
The Java SDK now understands
@CompileTimeConstantannotations and static track names — so instrumentation can be more efficient when the compiler can prove the strings are constant.📚 Refreshed documentation
The documentation site received a signifcant facelift
heap_profilewith bothhostandandroidsubcommandstraceconv(rewritten from scratch)trace_processorshell + C++ embeddingtraced_relaytrace_processorandtraceconvon WindowsTraceMetadataproto was renamed toTraceAttributes.tidfield inthread_descriptor.protois nowint64(matters for Windows, which has large thread IDs).dev.perfetto.Catapultplugin if you need them.arg_set_idcolumn was added to thethreadtable — queries joiningthreadwith other tables that havearg_set_id(e.g.slice) may need to qualify the column name to avoid ambiguity.🛠️ v55.1 patch fixes
A huge thanks to everyone — inside and outside Google — who contributed to making Perfetto v55 a success.♥️
For complete details, see the changelog or view all changes on GitHub.
Download Perfetto v55.1 from our releases page, get started at docs.perfetto.dev, or try the UI directly at ui.perfetto.dev.
This discussion was created from the release Perfetto v55.1.
Beta Was this translation helpful? Give feedback.
All reactions