One of the most helpful/useful tools in the upstream pprof package is the flame graph. A flame graph is a fixed-rate sampling visualization that can help to determine hot codepaths in a profile. As your programs get more and more complex, the profiles become larger and larger. It will often become difficult to know exactly what codepath is eating up the most CPU, or, as I often like to call it, the long pole in the tent.
Flame graphs were originally developed by Brendan Gregg at Netflix to solve a MySQL CPU utilization problem. The advent of this visualization has helped many programmers and system administrators determine what the source of latency is in their program. The pprof binary produces an icicle-style (flames pointing downward) flame graph. In a flame graph, we have data visualized in a specific frame:
- The x axis is the collection...