No offense, but have you spent much time with Go or Rust? In most cases Go's performance difference isn't extremely divergent from C++'s and it preserves safety and enhances convenience, exceptions and adds concurrency.
The graphviz / svg output from the profiler shown there is very nice. Does something similar exist for other languages? I particularly like the scaling of the node size by the appropriate value (CPU time, memory use, etc).
Comments
No offense, but have you spent much time with Go or Rust? In most cases Go's performance difference isn't extremely divergent from C++'s and it preserves safety and enhances convenience, exceptions and adds concurrency.
Go afaict does more than preserve safety, it improves it! And it enhances convenience. Concurrency in C++ works just fine, though.
Last I heard the Go compiler was generating code 6x or more slower than comparable C++ code. Is that not still true?
You heard wrong: http://blog.golang.org/2011/06/profiling-go-programs.html
The graphviz / svg output from the profiler shown there is very nice. Does something similar exist for other languages? I particularly like the scaling of the node size by the appropriate value (CPU time, memory use, etc).
Go's pprof is based on the C-based one: http://code.google.com/p/gperftools/