有没有valgrind的扩展,可以在命令窗口中使用,这可以帮助我知道我的C代码中每个函数花费的时间(以秒为单位)?
thanks =)
答案 0 :(得分:28)
对于机器指令分析,使用valgrind的callgrind(同样,cachegrind可以进行缓存和分支预测分析,这非常好。)
对于使用google's cpu profiler的时间测量,它提供的结果比gprof更好。您可以设置采样频率,它可以将输出显示为一个很好的带注释的调用图。
答案 1 :(得分:17)
Valgrind不适合测量时间,因为在valgrind中运行应用程序会扭曲结果(减速,CPU与I / O)。因此,valgrind分析工具callgrind不会测量时间,而是CPU指令。 Callgrind仅在您的瓶颈受CPU限制(因此CPU指令很重要)时才有用,然后测量的CPU指令将与花费的时间成比例。如果涉及繁重的I / O或多个进程,则无用。然后你应该使用一个采样分析器,如gprof或sysprof。它检查过程所处的功能的间隔,结果失真较少。
答案 2 :(得分:3)
使用this链接。我认为Callgrind
之类的东西可以解决这个问题。