Questions tagged [flamegraph]

Flame graphs are a visualization of profiled software, allowing the most frequent code-paths to be identified quickly and accurately — Brendan Gregg

Flame graphs are a visualization of profiled software, allowing the most frequent code-paths to be identified quickly and accurately.

enter image description here

The x-axis shows the stack profile population, sorted alphabetically (it is not the passage of time), and the y-axis shows stack depth. Each rectangle represents a stack frame. The wider a frame is is, the more often it was present in the stacks. The top edge shows what is on-CPU, and beneath it is its ancestry. The colors are usually not significant, picked randomly to differentiate frames.

This visualization is fully introduced and explained in the CPU Flame Graphs page, and in Brendan Gregg presentation.

43 questions
15
votes
1 answer

How does linux's perf utility understand stack traces?

Linux's perf utility is famously used by Brendan Gregg to generate flamegraphs for c/c++, jvm code, nodejs code, etc. Does the Linux kernel natively understand stack traces? Where can I read more about how a tool is able to introspect into stack…
Shahbaz
  • 9,743
  • 18
  • 51
  • 71
6
votes
2 answers

Chrome Timeline does not show all calls on a flame chart

While using Google Chrome Timeline feature I have noticed a strange thing. On my PC in a workplace flame chart is very flat, showing only 1-2 function calls deep. My first thought was: "Well, that is the way this thing works". But when I opened the…
aadam
  • 704
  • 4
  • 17
5
votes
1 answer

Construct flame graph from trie

I have some stats in a trie which is generated periodically. I want to generate flame graphs on the difference between two tries. How do I do that? t = pygtrie.StringTrie(separator=os.path.sep) for dirpath, unused_dirnames, filenames in…
Gyanendra Singh
  • 655
  • 9
  • 23
5
votes
1 answer

How to interpret gaps in chrome flame charts

I'm trying to better understand how to interpret chrome flame charts. In the below chart _changeHandler is shown as four distinct blocks. However I know for fact that it's only being called once. I saw a similar question here, which claims this…
Willem D'Haeseleer
  • 17,802
  • 6
  • 58
  • 92
5
votes
1 answer

How to avoid truncated stack traces with Java Flight Recorder

I am using Oracle Java Flight Recorder to collect stack trace samples of a Java application. Theses stack traces allows me to eventually produce a CPU Flamegraph. My issue is that stack traces deeper than 64 frames are truncated by Java Flight…
Clément MATHIEU
  • 2,708
  • 20
  • 22
4
votes
0 answers

A problem about chrome devltools javascript profiler flame graph, aggregated time is smaller than total time

aggregated time and total time are underlined in the picture. devtool flame graph what's the meaning of this circumstance?
weisiwu
  • 41
  • 2
3
votes
1 answer

Does Firefox allow profiling JS apps using "aggregated" flame charts?

Firefox Developer Tools support flame charts, but it seems time is used as X-axis: In the Flame Chart view itself, along the X-axis is time. The screenshot above covers the period from 1435ms to a little past 1465ms. Along the Y-axis are the…
johndodo
  • 13,994
  • 13
  • 81
  • 105
3
votes
0 answers

Errors when generating mixed mode Flame Graphs

I'm trying to generate some mixed mode flame graphs on a Linux machine (CentOS 7) and running into some issues. I'm following instructions from this link: https://www.slideshare.net/brendangregg/java-performance-analysis-on-linux-with-flame-graphs…
pree
  • 2,057
  • 6
  • 32
  • 50
2
votes
1 answer

Why does the Java flight recorder take too few samples?

We have a bad performing application and therefore we used the flight recorder's method profiling to see where the time is spent. It's basically working, but the number of taken samples is way below 100 for a minute of recording. (using the…
Kai Giebeler
  • 427
  • 3
  • 10
2
votes
0 answers

Node.js Flame Graph note working properly

I'm trying to generate a flame graph on ubuntu 14.04 for a node.js app. I used this guide (Brendan Gregg) : http://www.brendangregg.com/blog/2014-09-17/node-flame-graphs-on-linux.html. 1) I ran my node.js app with a --perf-basic-prof under a web…
Dory Zidon
  • 9,328
  • 2
  • 20
  • 33
2
votes
0 answers

with build id not found, continuing with out symbols, encountered with linux perf on cross platform

i have a simple program whose performance is to be measured on a arm cortex a7 machine with linux 3.10 and perf tool 3.4 version program: #include int i=0; void main2(void) { for(i=0;i<20000;i++); } void…
kakeh
  • 373
  • 2
  • 16
2
votes
1 answer

Node.js performance's analysis through flame graph (on Mac)

Flame graphs are a visualization of profiled software, allowing the most frequent code-paths to be identified quickly and accurately — Brendan Gregg on flame graph Using node --perf-basic-prof with Xcode Instruments (on Mac) should help to…
yves amsellem
  • 6,758
  • 4
  • 39
  • 66
1
vote
0 answers

Creating flamegraphs over specific binary executable

I want to create a flamegraph of my Rust executable (which is in target/release/name-of-binary). I found the perf command to here However, since I'm suing mac os, I don't have perf and have to use dtrace. Although I figured out how to use dtrace for…
Ziva
  • 2,378
  • 9
  • 38
  • 66
1
vote
0 answers

Clinic flamegraph: trying to read graph to determine fixes

I used Clinic to create a flamegraph and I am seeing a lot of activity coming from Mongoose. A common theme seems to indicate that a lot of these calls seems to be "line: 1, column:1". On the surface, It seems like there are ways to optimize…
user1790300
  • 2,245
  • 6
  • 36
  • 97
1
vote
0 answers

Profiling of PyTorch Custom Dataset for Dataloader

I implemented a custom PyTorch Dataset for my project's Dataloader to use. However, it is running slower than expected so profiling was chosen to troubleshoot the bottleneck. Looked into vprof but I am unsure of the function to be profiled if I am…
Athena Wisdom
  • 4,261
  • 5
  • 20
  • 28
1
2 3