commit | ea5479945ea03302f241a84bcbec351f4d53fa7c | [log] [tgz] |
---|---|---|
author | Carlos Caballero Grolimund <carlscab@google.com> | Wed Mar 08 11:41:31 2023 +0000 |
committer | Carlos Caballero Grolimund <carlscab@google.com> | Wed Mar 08 11:41:31 2023 +0000 |
tree | 98ff4f338dde12728febbebc3fd08c5709b88869 | |
parent | c2e098cc564b60d544dd1eb8aa851277642a99a4 [diff] |
Add SQL support to generate stacks. This patch adds the ability control the stacks that you put into pprof profiles (via the existing EXPERIMENTAL_PROFILE function). EXPERIMENTAL_PROFILE function now takes a BLOB first parameter that is a serialized form of a Stack object which is just a collection of frames. We also have the following functions to create such Stacks * CAT_STACKS(root, level_1, …, leaf): Creates a Stack by concatenating Frames or other Stacks. Also accepts strings for which it generates a fake Frame * STACK_FROM_STACK_PROFILE_FRAME(frame_id LONG): Takes a frame_id (reference to the stack_profile_frame table) * STACK_FROM_STACK_PROFILE_CALLSITE(callsite_id LONG): Takes a callsite_id (reference to the stack_profile_callsite table) and generates a list of frames (by walking the stack_profile_callsite table) As a result we can now implement protoprofile as a SQL query, which this patch also does to show how these functions can be used. Change-Id: I9b59b7e1a457017cb135df5819e960783816bc95
Perfetto is a production-grade open-source stack for performance instrumentation and trace analysis. It offers services and libraries and for recording system-level and app-level traces, native + java heap profiling, a library for analyzing traces using SQL and a web-based UI to visualize and explore multi-GB traces.
See https://perfetto.dev/docs or the /docs/ directory for documentation.