{"status":"ok","message-type":"work","message-version":"1.0.0","message":{"indexed":{"date-parts":[[2025,11,13]],"date-time":"2025-11-13T18:19:01Z","timestamp":1763057941412,"version":"3.41.0"},"reference-count":15,"publisher":"Association for Computing Machinery (ACM)","issue":"2","license":[{"start":{"date-parts":[[2016,3,1]],"date-time":"2016-03-01T00:00:00Z","timestamp":1456790400000},"content-version":"vor","delay-in-days":0,"URL":"https:\/\/www.acm.org\/publications\/policies\/copyright_policy#Background"}],"content-domain":{"domain":["dl.acm.org"],"crossmark-restriction":true},"short-container-title":["Queue"],"published-print":{"date-parts":[[2016,3]]},"abstract":"<jats:p>An everyday problem in our industry is understanding how software is consuming resources, particularly CPUs. What exactly is consuming how much, and how did this change since the last software version? These questions can be answered using software profilers, tools that help direct developers to optimize their code and operators to tune their environment. The output of profilers can be verbose, however, making it laborious to study and comprehend. The flame graph provides a new visualization for profiler output and can make for much faster comprehension, reducing the time for root cause analysis.<\/jats:p>","DOI":"10.1145\/2927299.2927301","type":"journal-article","created":{"date-parts":[[2016,4,22]],"date-time":"2016-04-22T13:53:06Z","timestamp":1461333186000},"page":"91-110","update-policy":"https:\/\/doi.org\/10.1145\/crossmark-policy","source":"Crossref","is-referenced-by-count":15,"title":["The Flame Graph"],"prefix":"10.1145","volume":"14","author":[{"given":"Brendan","family":"Gregg","sequence":"first","affiliation":[{"name":"Netflix"}]}],"member":"320","published-online":{"date-parts":[[2016,3]]},"reference":[{"key":"e_1_2_1_1_1","unstructured":"Bezemer C.-P. Flamegraphdiff. GitHub; http:\/\/corpaul.github.io\/flamegraphdiff\/.  Bezemer C.-P. Flamegraphdiff. GitHub; http:\/\/corpaul.github.io\/flamegraphdiff\/."},{"volume-title":"Evolution and Reengineering (SANER), 2015 IEEE 22nd International Conference; http:\/\/ieeexplore.ieee.org\/xpl\/articleDetails.jsp?arnumber=7081872&newsearch=true&queryText=7081872","year":"2015","author":"Bezemer C.-P.","key":"e_1_2_1_2_1"},{"volume-title":"27th Large Installation System Administration Conference; https:\/\/www.usenix.org\/conference\/lisa13\/technical-sessions\/plenary\/gregg.","year":"2013","author":"Gregg B.","key":"e_1_2_1_3_1"},{"key":"e_1_2_1_4_1","unstructured":"Gregg B. FlameGraph. GitHub; https:\/\/github.com\/brendangregg\/FlameGraph.  Gregg B. FlameGraph. GitHub; https:\/\/github.com\/brendangregg\/FlameGraph."},{"key":"e_1_2_1_5_1","unstructured":"Gregg B. Flame graphs; http:\/\/www.brendangregg.com\/flamegraphs.html.  Gregg B. Flame graphs; http:\/\/www.brendangregg.com\/flamegraphs.html."},{"key":"e_1_2_1_6_1","unstructured":"Gregg B. Spier M. 2015. Java in flames. The Netflix Tech Blog; http:\/\/techblog.netflix.com\/2015\/07\/java-in-flames.html.  Gregg B. Spier M. 2015. Java in flames. The Netflix Tech Blog; http:\/\/techblog.netflix.com\/2015\/07\/java-in-flames.html."},{"key":"e_1_2_1_7_1","doi-asserted-by":"publisher","DOI":"10.1145\/1794514.1805128"},{"key":"e_1_2_1_8_1","unstructured":"Lorenz T. Flamegraph. GitHub; https:\/\/github.com\/thlorenz\/flamegraph.  Lorenz T. Flamegraph. GitHub; https:\/\/github.com\/thlorenz\/flamegraph."},{"key":"e_1_2_1_9_1","unstructured":"Nadgir N. 2007. Visualizing callgraphs via dtrace and ruby. Oracle Blogs; https:\/\/blogs.oracle.com\/realneel\/entry\/visualizing_callstacks_via_dtrace_and.  Nadgir N. 2007. Visualizing callgraphs via dtrace and ruby. Oracle Blogs; https:\/\/blogs.oracle.com\/realneel\/entry\/visualizing_callstacks_via_dtrace_and."},{"key":"e_1_2_1_10_1","unstructured":"Odds G. 2013. The science behind data visualisation. Creative Bloq; http:\/\/www.creativebloq.com\/design\/science-behind-data-visualisation-8135496.  Odds G. 2013. The science behind data visualisation. Creative Bloq; http:\/\/www.creativebloq.com\/design\/science-behind-data-visualisation-8135496."},{"key":"e_1_2_1_11_1","unstructured":"Rudolph J. perf-map-agent. GitHub; https:\/\/github.com\/jrudolph\/perf-map-agent.  Rudolph J. perf-map-agent. GitHub; https:\/\/github.com\/jrudolph\/perf-map-agent."},{"key":"e_1_2_1_12_1","unstructured":"Spier M. 2015. d3-flame-graph. GitHub; https:\/\/github.com\/spiermar\/d3-flame-graph.  Spier M. 2015. d3-flame-graph. GitHub; https:\/\/github.com\/spiermar\/d3-flame-graph."},{"key":"e_1_2_1_13_1","unstructured":"Tikhonovsky I. 2013. Web Inspector: implement flame chart for CPU profiler. Webkit Bugzilla; https:\/\/bugs.webkit.org\/show_bug.cgi?id=111162.  Tikhonovsky I. 2013. Web Inspector: implement flame chart for CPU profiler. Webkit Bugzilla; https:\/\/bugs.webkit.org\/show_bug.cgi?id=111162."},{"key":"e_1_2_1_14_1","unstructured":"Weidendorfer J. KCachegrind; https:\/\/kcachegrind.github.io\/html\/Home.html.  Weidendorfer J. KCachegrind; https:\/\/kcachegrind.github.io\/html\/Home.html."},{"key":"e_1_2_1_15_1","unstructured":"Zhang Y. 2013. Introduction to off-CPU time flame graphs; http:\/\/agentzh.org\/misc\/slides\/off-cpu-flame-graphs.pdf.  Zhang Y. 2013. Introduction to off-CPU time flame graphs; http:\/\/agentzh.org\/misc\/slides\/off-cpu-flame-graphs.pdf."}],"container-title":["Queue"],"original-title":[],"language":"en","link":[{"URL":"https:\/\/dl.acm.org\/doi\/10.1145\/2927299.2927301","content-type":"unspecified","content-version":"vor","intended-application":"text-mining"},{"URL":"https:\/\/dl.acm.org\/doi\/pdf\/10.1145\/2927299.2927301","content-type":"unspecified","content-version":"vor","intended-application":"similarity-checking"}],"deposited":{"date-parts":[[2025,6,18]],"date-time":"2025-06-18T04:56:21Z","timestamp":1750222581000},"score":1,"resource":{"primary":{"URL":"https:\/\/dl.acm.org\/doi\/10.1145\/2927299.2927301"}},"subtitle":["This visualization of software execution is a new necessity for performance profiling and debugging."],"short-title":[],"issued":{"date-parts":[[2016,3]]},"references-count":15,"journal-issue":{"issue":"2","published-print":{"date-parts":[[2016,3]]}},"alternative-id":["10.1145\/2927299.2927301"],"URL":"https:\/\/doi.org\/10.1145\/2927299.2927301","relation":{},"ISSN":["1542-7730","1542-7749"],"issn-type":[{"type":"print","value":"1542-7730"},{"type":"electronic","value":"1542-7749"}],"subject":[],"published":{"date-parts":[[2016,3]]},"assertion":[{"value":"2016-03-01","order":2,"name":"published","label":"Published","group":{"name":"publication_history","label":"Publication History"}}]}}