使用valgrind知道每个函数花费的时间(以秒为单位)

是否有valgrind的扩展,可以在命令窗口中使用,这将帮助我知道我的C代码中每个函数花费的时间(以秒为单位)?

谢谢=)

对于机器指令分析,使用valgrind的callgrind (同样, cachegrind可以进行缓存和分支预测分析,这非常好)。

对于时间测量使用google的cpu profiler ,它提供了比gprof更好的结果。 您可以设置采样频率,它可以将输出显示为一个很好的带注释的调用图。

Valgrind不适合测量时间,因为在valgrind中运行应用程序会扭曲结果(减速,CPU与I / O)。 因此,valgrind分析工具callgrind不会测量时间,而是CPU指令。 Callgrind仅在您的瓶颈受CPU限制(因此CPU指令很重要)时才有用,然后测量的CPU指令将与花费的时间成比例。 如果涉及繁重的I / O或多个进程,则无用。 然后你应该使用一个采样分析器,如gprof或sysprof。 检查过程所处的function的间隔,结果失真较少。