Stack overflow地址:What is a good easy to use profiler for C++ on Linux? - Stack Overflow
翻译:
我想要分析一些Linux上的C++代码。各种有什么分析器的建议吗?
Answers1:
使用gprof。
只需要在编译的时候带有 -pg标识(我认为(但不一定是正确的)你需要关闭优化选项),并且使用 gprof来分析这个你的可执行文件产生的 gmon.out文件。
例子:
gcc -pg -o whatever whatever.c
./whatever
gprof whatever gmon.out
同样的方法对于g++和cpp。
Answers2:
valgrind是一个众所周知的Linux性能分析器。
Answers3:
RotateRight(http://www.rotateright.com)是我一直在使用的。它有函数的蝴蝶视图,并且你可以双击任何函数进行入到源代码或者汇编代码中。创建带有调试信息(-g)来查看你的源码,但是你仍然需要构建和分析优化代码。
Answers4:
我是Oprofile的粉丝,它涉及到安装一个内核模块并且有一点的学习曲线,但是它非常强大对于优化没有调试符号的程序。
Vtune是另一个非常厉害的性能分析工具来自intel。我相信Linux版本对于非商业软件来说是免费的。
还有由dfa提供的valgrind套件。Callgrind 可能是你最感兴趣的。Cachegrind(它是Callgrind's的一个子集)和Massif 也是非常不错的,但是我没有任何它们的使用经验。
Answers5:
可以看一下KCacheGrind,它是valgrind的图形界面版本,非常的容易使用。
Answers6:
google也有有个非常好用的性能分析器,作为google-perftools的一部分,它被Debian / Ubuntu 所包含,可能还有其他发行版。