
The really nice thing about flame graphs is that you can generate them for Java only, but also on OS level (Linux and OS X) to get lower level information in there as well. Similar when using instrumentation, because of additional overhead this might mess up the results and is therefore not recommended. suffer from ‘safepoint sampling bias’ (therefore we’ll use the Honest Profiler later on). So only look at the width, not where they are on the axis.Ĭompare that to the JProfiler tree view below, where the overview gets lost much more quickly.Īs always when looking at profiling results, though, make sure you know what you are looking at. The stack frames are sorted alphabetically from left to right. Important to note is that the X-axis != time passing. Color: depending on the configuration will e.g.X-axis / Width: presents how much time (number of samples) was spent within a method.Y-axis / Height: presents the stack depth.Also the input for generating the flame graph is a simple text file that can be easily hacked to add / filter information!Ī flame graph will give you the following information: The nice thing about the SVG image is that it can be searched and filtered (unfortunately not possible in this blog post), which makes it really easy to traverse.

The graph then is generated by the Flame Graph tool by Brendan Gregg, a simple Perl script that will output an SVG image. These will create stack samples which can then be transformed / folded to get the right format for generating the flame graph. Or, as he puts it:įlame graphs are a visualization for sampled stack traces, which allows hot code-paths to be identified quickly.īelow you will see an example flame graph from a Spring Boot demo application.įlame graphs are generally created from the results of sampling profilers.
JPROFILER DEBIAN SERVRE HOW TO
In this post I’m hoping to give you some idea about what flame graphs are, how to read them and what tooling is available to create them.įlame graphs were invented by Brendan Gregg as a means to show profiling results. Flame graphs are relatively new and take a new angle to show the results.įurthermore, flame graphs can be generated on various levels tooling hooking into the JVM, but also on (Linux / MacOS) OS level. Traditionally these results are either shown in some kind of table form, either flat or as a tree view.

Currently there are several tools available to analyse your application performance and show the results.
