tp,ui: add PROFILE_FROM_TREE aggregate and expose it in flamegraphs PROFILE_FROM_TREE(id, parent_id, frame_name, self_value, sample_type, unit) is a new SQL aggregate that converts any tree-shaped table into a serialized pprof Profile. The stdlib module `pprof.from_tree` exposes it as `_pprof_from_tree!`, composing on top of the `std.trees.*` operators so users can filter, propagate, and emit pprof through the same primitives. The Flamegraph widget gains a "Download as pprof" toolbar button. Encoding lives in the engine; the widget delegates via a callback so the bytes always match the SQL surface. The SQL query results panel and SQL table tab gain an "Add Flamegraph" control mirroring "Add debug track": the user picks the id/parent_id/name/value columns of any query, optionally overrides sample type and unit, and the result opens as an ephemeral flamegraph tab that inherits the toolbar Download button. Documentation under analysis/pprof-from-tree.md describes the SQL surface and walks through recipes for heap dumps, callstack samples, message-queue stacks, and Java heap dominator trees. Diff tests cover the aggregate and the stdlib macro. Change-Id: I27106469fc9c74dc45f494ed87a70c3b76f9c089
Perfetto is an open-source suite of SDKs, daemons and tools which use tracing to help developers understand the behaviour of complex systems and root-cause functional and performance issues on client and embedded systems.
It is a production-grade tool that is the default tracing system for the Android operating system and the Chromium browser.
Perfetto is not a single tool, but a collection of components that work together:
Perfetto was designed to be a versatile and powerful tracing system for a wide range of use cases.
ftrace, allowing you to visualize scheduling, syscalls, interrupts, and custom kernel tracepoints on a timeline.chrome://tracing. Use it to debug and root-cause issues in the browser, V8, and Blink.We‘ve designed our documentation to guide you to the right information as quickly as possible, whether you’re a newcomer to performance analysis or an experienced developer.
New to tracing? If you're unfamiliar with concepts like tracing and profiling, start here:
Ready to dive in? Our “Getting Started” guide is the main entry point for all users. It will help you find the right tutorials and documentation for your specific needs:
Want the full overview? For a comprehensive look at what Perfetto is, why it's useful, and who uses it, see our main documentation page:
For users interested in the Debian distribution of Perfetto, the official source of truth and packaging efforts are maintained at Debian Perfetto Salsa Repository
Have questions? Need help?
We follow Google's Open Source Community Guidelines.