什么是一个易于使用的Linux上C++的分析器?

she*_*ill 76 c++ linux profiler

我需要在Linux上分析一些运行C++的代码.你们能推荐一些个人资料吗?

smc*_*ron 37

使用gprof.

只需使用-pgflag 编译(我认为(但不确定)你必须改进优化.)并使用gprof来分析你的可执行文件随后将生成的gmon.out文件.

例如:

gcc -pg -o whatever whatever.c

./whatever

gprof whatever gmon.out
Run Code Online (Sandbox Code Playgroud)

与g ++和cpp相同.

  • 分析未经优化的代码有点无意义,不是吗?同样,使用-pg大量修改的分析代码通常会误导您优化错误的位置. (29认同)

dfa*_*dfa 24

valgrind是一个众所周知的Linux分析器

  • 使用名为"callgrind"的套件工具 (12认同)
  • Valgrind只是构建动态工具的框架。尽管它已成为基于Valgrind的工具Memcheck的代名词。Callgrind在分析器方面非常擅长。 (2认同)

XWa*_*are 13

从RotateRight(http://www.rotateright.com)缩放是我一直在使用的.它具有函数的蝶形视图,您可以双击任何函数以深入到源代码或asm代码.使用调试信息(-g)构建以查看源代码,但您仍应构建和配置优化代码.


Fal*_*ina 12

我是Oprofile的粉丝.它涉及安装一个内核模块并且有一点学习曲线,但它相当强大,并且非常适用于没有调试符号的优化程序/程序.

Vtune是英特尔制造的另一款非常强大的分析器.我相信Linux版本对于非商业软件是免费的.

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


Dir*_*tel 5

作为google-perftools 的一部分,Google 也有一个不错的分析器——它包含在 Debian/Ubuntu 和可能的其他发行版中。


Mil*_*kov 5

看看KCacheGrind,它是valgrind的图形前端,使它非常容易使用.