what's the advantage of using perf over valgrind? I've never really managed to get it working (it hooks into the kernel and inevitable some part of it fails for me) - but maybe I'm missing out on something?
I understand it probably handles mutithreading better and probably has a much better performance - but is that really it?