If you are using Java or JVM languages and are interested in performance:
This is the greatest thing since sliced bread: https://github.com/jvm-profiling-tools/async-profiler
All my attempts to understand what's going on on this app I'm working on didn't work out - Yourkit was terrible slow to trace calls and I got lost in the details - but just one .svg flamegraph from this tool solved quite a few problems. And it's also doing heap and allocation profiling!
Last but not least: works at native speed.