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.

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.

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