Flame graph

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. The information 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.[2]
The approach is commonly used in profiling CPU performance,[3] and has also seen recent adoption for profiling GPU performance, especially for artificial intelligence software like large language models.[4][5] Flame graphs were created by Australian computer engineer Brendan Gregg in 2011.[6]
In the 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.[5][7][8][9][10] 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][3][9][11]
In development tools
Flame graphs are officially supported in several integrated development environments, including Visual Studio, Visual Studio Code and IntelliJ IDEA.[12][13][14] A flame graph implementation is also included with the web development tools built into Google Chrome and Firefox.[13][15]
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.[16]
References
- ↑ 1.0 1.1 Livneh, Ori (29 December 2014). "How we made editing Wikipedia twice as fast". https://wikimediafoundation.org/news/2014/12/29/how-we-made-editing-wikipedia-twice-as-fast/.
- ↑ Gregg, Brendan (23 May 2016). "The flame graph". Communications of the ACM 59 (6): 48–57. doi:10.1145/2909476.
- ↑ 3.0 3.1 "CPU Flame Graphs". https://www.brendangregg.com/FlameGraphs/cpuflamegraphs.html.
- ↑ "Intel Makes "AI Flame Graphs" Open-Source" (in en). https://www.phoronix.com/news/Intel-AI-Flame-Graphs-Open.
- ↑ 5.0 5.1 "Scaling vLLM for Embeddings: 16x Throughput and Cost Reduction" (in en). https://www.snowflake.com/en/engineering-blog/embedding-inference-arctic-16x-faster/.
- ↑ Gregg, Brendan. "Flame Graphs". https://www.brendangregg.com/flamegraphs.html.
- ↑ "The story of one latency spike" (in en). 19 November 2015. https://blog.cloudflare.com/the-story-of-one-latency-spike/.
- ↑ "Netflix FlameScope". https://netflixtechblog.com/netflix-flamescope-a57ca19d47bb.
- ↑ 9.0 9.1 "Analyzing Java applications performance with async-profiler in Amazon EKS Containers". 23 April 2025. https://aws.amazon.com/blogs/containers/analyzing-java-applications-performance-async-profiler-amazon-eks/.
- ↑ "Flame graphs - Cloud Profiler" (in en). https://docs.cloud.google.com/profiler/docs/concepts-flame.
- ↑ "Flame Graphs". https://nodejs.org/en/learn/diagnostics/flame-graphs.
- ↑ "Identify hot paths with the Flame Graph" (in en-us). https://learn.microsoft.com/en-us/visualstudio/profiling/flame-graph?view=visualstudio.
- ↑ 13.0 13.1 Anderson, Tim. "Visual Studio Code 1.50 goes hard on extensions support, but tackling add-on bloat is becoming more onerous". https://www.theregister.com/2020/10/13/visual_studio_code_1_50/.
- ↑ "Read the profiler snapshot". https://www.jetbrains.com/help/idea/read-the-profiling-report.html.
- ↑ Wajsberg, Julien (27 October 2022). "What’s new with the Firefox Profiler? (Q3 2022)". https://blog.mozilla.org/performance/2022/10/27/whats-new-with-the-firefox-profiler-q3-2022/.
- ↑ Bezemer, Cor-Paul; Pouwelse, Johan; Gregg, Brendan (March 2015). "Understanding software performance regressions using differential flame graphs". IEEE Xplore: 535–539. doi:10.1109/SANER.2015.7081872.
