cProfile flamegraph generator
Flamegraph generator for python’s cProfile stats.
Flamegraphs allow to visualize relations between functions in a very compact and understandable manner.
Flameprof solves main problems of built-in cProfile reporting and can replace gprof2dot because later outputs very huge graphs with a lot of noise.
Flameprof works with profile stat files obtained by Profile.dump_stats() call or via direct script profiling:
python -m cProfile -o myscript.prof myscript.py
pip install flameprof
Or you can invoke flameprof.py directly:
python flameprof.py input.prof > output.svg
Native svg (–format=svg)
Native svg features:
- compact function names with full names in a tooltip
- precise timings (cumulative and total)
- call counts (in a tooltip on hover)
- green bars show stack frames where flameprof starts to guess timing ratios
- inverted flamegraph to show total time of all calls
Graph width, row height, font size and threshold can be set via appropriate cli options.
flameprof requests.prof > requests.svg
(Images are clickable)
Svg generated with flamegraph.pl (–format=log)
Also flameprof can output trace log suitable as input for flamegraph.pl.
You can treat “samples” as microseconds by default (see --log-mult option).
flameprof --format=log requests.prof | flamegraph > requests-flamegraph.svg
(Image is clickable)