Flame graph

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

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 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, creating an intuitive visualization of resource consumption. Each cell in the graph represents a stack frame.[3] Cell position along the y-axis indicates stack depth. Position along the x-axis does not have special meaning; however, cell width indicates "frequency at which that function was present in the stack traces".[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

  1. ^ a b Livneh, Ori (29 December 2014). "How we made editing Wikipedia twice as fast". Wikimedia Foundation. Retrieved 1 April 2026.
  2. ^ Gregg, Brendan. "Flame Graphs". Retrieved 1 April 2026.
  3. ^ a b Gregg, Brendan (23 May 2016). "The flame graph". Communications of the ACM. 59 (6): 48–57. doi:10.1145/2909476.
  4. ^ a b "CPU Flame Graphs". Brendan Gregg. Retrieved 1 April 2026.
  5. ^ Joab, Jackson (2013-11-08). "Flame graph shows computer system performance in a new light". PCWorld. Retrieved 2026-04-12.
  6. ^ "Intel Makes "AI Flame Graphs" Open-Source". Phoronix. Retrieved 1 April 2026.
  7. ^ a b "Scaling vLLM for Embeddings: 16x Throughput and Cost Reduction". Snowflake. Retrieved 1 April 2026.
  8. ^ "The story of one latency spike". The Cloudflare Blog. 19 November 2015. Retrieved 1 April 2026.
  9. ^ "Netflix FlameScope". Netflix TechBlog. Retrieved 1 April 2026.
  10. ^ a b "Analyzing Java applications performance with async-profiler in Amazon EKS Containers". Amazon Web Services. 23 April 2025. Retrieved 1 April 2026.
  11. ^ "Flame graphs - Cloud Profiler". Google Cloud Documentation. Retrieved 1 April 2026.
  12. ^ "Flame Graphs". Node.js. Retrieved 1 April 2026.
  13. ^ "Identify hot paths with the Flame Graph". Visual Studio. Retrieved 1 April 2026.
  14. ^ a b Anderson, Tim. "Visual Studio Code 1.50 goes hard on extensions support, but tackling add-on bloat is becoming more onerous". The Register. Retrieved 1 April 2026.
  15. ^ "Read the profiler snapshot". IntelliJ IDEA Help. Retrieved 1 April 2026.
  16. ^ Wajsberg, Julien (27 October 2022). "What's new with the Firefox Profiler? (Q3 2022)". Mozilla Performance. Archived from the original on 24 June 2025. Retrieved 1 April 2026.
  17. ^ Bezemer, Cor-Paul; Pouwelse, Johan; Gregg, Brendan (March 2015). "Understanding software performance regressions using differential flame graphs". 2015 IEEE 22nd International Conference on Software Analysis, Evolution, and Reengineering (SANER). pp. 535–539. doi:10.1109/SANER.2015.7081872. ISBN 978-1-4799-8469-5.

Content Disclaimer

Informasi ini disarikan dari Wikipedia dan disajikan kembali untuk tujuan edukasi. Konten tersedia di bawah lisensi CC BY-SA 3.0. Kami tidak bertanggung jawab atas ketidakakuratan data yang bersumber dari kontribusi publik tersebut.

  1. The information displayed on this website is sourced in part or in whole from Wikipedia and has been adapted for the purpose of restating it. We strive to provide accurate and relevant information, however:
  2. There is no guarantee of absolute accuracy. Wikipedia is an open, collaborative project that can be edited by anyone, so information is subject to change.
  3. It is not intended to constitute professional advice. The content displayed is for informational and educational purposes only. For important decisions (e.g., medical, legal, or financial), please consult a professional.
  4. Content copyright. Wikipedia is licensed under the Creative Commons Attribution-ShareAlike License (CC BY-SA). This means that content may be reused with appropriate attribution and shared under a similar license.
  5. Responsible use. Any risk arising from the use of information from this website is entirely the responsibility of the user.