Flame graph

Software performance visualization technique From Wikipedia, the free encyclopedia

A flame graph is a software profiling visualization technique that allows for the rapid identification of hot spots in computer programs from stack trace data.

Flame graph from Wikimedia Foundation servers that helped to make Wikipedia editing twice as fast[1]

Flame graphs were created by Australian computer engineer Brendan Gregg in 2011.[2]

Usage

The information of a flame graph is represented graphically in a hierarchical manner; the x-axis represents execution time, while the y-axis shows stack depth, creating an intuitive visualization of resource consumption.[3] The approach is commonly used in profiling system resources such as CPU performance,[4] and memory usage[5] has also seen recent adoption for profiling GPU performance, especially for artificial intelligence software like large language models.[6][7]

Software industry

Flame graphs have seen increases in popularity in the software industry, especially in cloud computing, being employed by companies like Cloudflare, Netflix, Snowflake, Amazon Web Services and Google.[7][8][9][10][11] They are typically used to analyze performance bottlenecks in commonly deployed software runtimes like Node.js and Java, as well as heavy server-side programs like MySQL and MediaWiki.[1][4][10][12]

Development tools

Flame graphs are officially supported in several integrated development environments, including Visual Studio, Visual Studio Code and IntelliJ IDEA.[13][14][15] A flame graph implementation is also included with the web development tools built into Google Chrome and Firefox.[14][16]

Performance of software across different versions can be represented through differential flame graph implementations, which allow both improvements and regressions in efficiency to be identified.[17]

References

Related Articles

Wikiwand AI