
Inspector
Hover any bar to open the span details. This panel tells you what the function is, where it comes from, and how its time is spent. “Self time” is the time in the function body only. “Total time” includes its children. The bars break each into instructions, cache, and memory so you can see what is actually limiting progress.
Color modes
By Origin
Colors by code origin: User, Library, System, or Unknown. Useful to separate your code from dependencies and the kernel.
Differential
Compares Base vs Head and colors spans by change: slower, faster, added, or removed. Ideal for scanning regressions and wins after a commit.
- Slower: The span is slower than in the base run.
- Faster: The span is faster than in the base run.
- Added: The span has been added in the head run.
- Removed: The span is removed in the head run.
By Bottleneck
Colors each span by the dominant bound on its self time: instruction-bound, cache-bound, memory-bound, or system-bound. Fast way to see what is blocking work.
By Function
Colors spans by function symbol so identical functions share a color, no matter where they are called. Helps spot hot functions across call sites.
Function colors will be the same across benchmarks, projects, and runs. So you
can easily recognize the same function across different runs.
System Calls toggle
Include kernel and low-level runtime contributions. Off keeps focus on application and library code.Function list
Upon expanding a flamegraph, you can access the function list. And dive in the details of each span.
Next Steps
Getting Started with Performance Profiling
Set Up CPU Benchmarks
Learn how to enable CPU instrumentation to generate flame graphs
Set Up Walltime Benchmarks
Learn how to enable Walltime instrumentation to generate flame graphs
Troubleshooting Performance Issues
When you detect a performance regression through automated performance
checks, use these flame graphs to quickly
identify the root cause and optimize the problematic code sections.