在Linux上用C ++开发一个简单易用的分析器是什么?

我需要分析一些在Linux上运行C ++的代码。 你们可以推荐一些configuration文件吗?

使用gprof。

-pg标志进行编译(我认为(但不是很确定)你必须优化),然后使用gprof来分析你的可执行文件然后生成的gmon.out文件。

例如:

 gcc -pg -o whatever whatever.c ./whatever gprof whatever gmon.out 

与g ++和cpp一样的东西。

valgrind是一个知名的linux分析器

从RotateRight( http://www.rotateright.com )放大是我一直在使用。 它具有function的蝴蝶视图,你可以双击任何函数来潜入源代码或asm代码。 用debugging信息(-g)构build来查看源代码,但是仍然应该构build和configuration优化的代码。

我是Oprofile的粉丝。 它涉及到安装一个内核模块,并有一些学习曲线,但它是相当强大的,非常适合优化程序/程序,而无需debugging符号。

Vtune是英特尔另一个非常强大的分析器。 我相信Linux版本是免费的非商业软件。

还有dfa提出的Valgrind工具套件。 Callgrind可能是你最感兴趣的。Cachegrind(其function集是Callgrind的一个子集)和Massif也很有趣,但是我对后者没有经验。

看看KCacheGrind ,这是一个valgrind的graphics前端,使它很容易使用它。

谷歌也有一个不错的分析器作为谷歌perftools的一部分 – 这是包括在Debian / Ubuntu和可能其他发行版。

gprof是用于分析的标准gnu工具。

看看Sysprof 。 你的发行很可能已经可用了。

请注意,如果应用程序使用帧指针进行编译,则所有提到的分析器工作效果最佳。 也就是说,你应该在gcc命令行上使用-fno-omit-frame-pointer。

这是我用的。