Alternative for flamegraphs

Flamegraphs are created by polling the stacktrace and post-processing the results, lumping together parts of stacktraces. If my code calls functions tic() and toc() alternatingly, a flamegraph lumps together all calls to tic() and to toc(), giving me two horizontal beams next to each other. I need a simpler graph that does not do this kind of lumping. So every time function tic() is entered, I want a horizontal bar to start and when tic() returns, the bar should end. Such a graph can be very useful for performance analysis of calls with a repetitive nature. Obviously I want time along the horizontal axis and essentially a representation of stacktraces vertically.

There is lots of documentation available about profiling in Julia and Flamegraphs, but I can not find a info on the kind of graph I need.

Questions:

  • Is a Julia package available that does what I need?
  • Can the data provided by Profile package be used? It can save data in two formats, one is called ‘flat’.
  • Is there documentation available on these formats?

Check out GitHub - topolarity/Tracy.jl: A convenient interface for using Tracy from within Julia code.

It is a bit low on docs right now but it is good.

1 Like

An alternative to flame graphs for visualizing profiling data is available with PProf.jl. Not sure if it does what you want, but check it out if you haven’t already.

3 Likes

Thanks for mentioning PProf; it includes flamegraph functionality and much more, so definately a step forward.

1 Like