Real-world benchmarks are rarely single-threaded. Web servers spawn workers, data pipelines fan out across processes, and runtimes keep background threads busy with garbage collection or I/O. Until now, all of that activity was merged into a single flame graph, making it hard to tell what each process or thread was actually doing.
Splitting a multi-process benchmark's flame graph: the Threads selector turns the merged view into one section per process and thread
Flame graphs are now fully process and thread aware. When a benchmark involves multiple processes or threads, a new Threads selector appears in the flame graph viewer:
Processes and threads are listed with their actual names, so finding the worker you care about doesn't require knowing its PID.
The selection also carries over to differential flame graphs: threads are matched across the base and head runs, so you can compare the exact same subset of the execution between two commits.
The same process and thread awareness ships in the
MCP server's query_flamegraph
tool, so your AI assistant can narrow its flame graph analysis down to a
specific process or thread when investigating a multi-process benchmark.
This works across instruments, and is especially useful with walltime profiling on multi-process workloads. Learn more in the profiling documentation.