Profiling

Perf

Chandler Carruth using perf

record

build with -fno-omit-frame-pointer.

-g to collect stack information.

perf record -g

simple summary statisic

perf stat report

report

graph: percentage

perf report -g 'graph,0.5,caller'

Makefile for Flamegraph generation

svgs := $(patsubst data/%.data, svg/%.svg, $(wildcard data/*data))

all : $(svgs)

%.folded : data/%.data
	perf script -i $< | stackcollapse-perf.pl > $@

svg/%.svg : %.folded
	flamegraph.pl $< > $@

Python profiling

$ python -m cProfile -o prof.out foo.py
$ gprof2dot -f pstats prof.out | dot -Tpng -o prof.png

Interesting stuff