Implement source line (w/ heatmap) and disassembly viewing for callstack samples
- Dominant language
- C++
- Stars
- 6.5k
- Forks
- 868
- Avg merge
- 2d 1h
- Merged PRs (30d)
- 218
Description
Lots of other profilers have a few features which people really like and find cool and we should also have in Perfetto:
1) Support for viewing source files (specifically focused on functions which have been been callstack profiled inside the UI with heatmaps of lines profiled)
2) Support for viewing assembly profiled with a similar heatmap view to the above
3) In the assembly viewer, visualize using arrows the control flow (i.e. arrow for backwards/forwards jumps etc)
I already experimented building this in https://github.com/lalitMaganti/sismo. So concretely we need to do the following:
1) Add support at the proto level for embedding source file and/or assembly information in the trace.
2) Add support at bundling time to "bundle" the trace file with the source file and assembly information (i.e. include the contents in the trace)
3) Add support in the UI for visualizing this information in a new details panel with switchers to switch between the modes
4) Add support in the tree explorer tabs to open this details panel focusing in on a particular function.
Contributor guide
Research direction
Start by reviewing the existing sismo experiment and mapping Perfetto’s proto, trace bundling, UI details-panel, and tree-explorer areas; the issue names no specific files or tests. Done means traces can embed and bundle source and assembly data, the UI can show both with heatmaps and assembly control-flow arrows, and tree explorer tabs can open the panel for a selected function.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- cpp
- Domain
- frontend, performance
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Active
- Clarity
- Mostly clear
- Newbie friendliness
- 35/100