有没有Valgrind的扩展程序可以在命令行窗口中使用,帮助我知道C代码中每个函数花费的时间(秒)?
谢谢 =)
有没有Valgrind的扩展程序可以在命令行窗口中使用,帮助我知道C代码中每个函数花费的时间(秒)?
谢谢 =)
进行机器指令分析时,请使用valgrind的 callgrind (同时,cachegrind 可以执行缓存和分支预测分析,这非常好用)。
进行时间测量时,请使用谷歌的CPU性能分析工具,它的结果比gprof更好。您可以设置采样频率,并将输出显示为漂亮的注释调用图。
Valgrind不适合用于测量时间,因为在valgrind中运行应用程序会扭曲结果(减速,CPU与I/O)。因此,valgrind分析工具Callgrind不测量时间,而是测量CPU指令。如果您的瓶颈是CPU绑定的(因此CPU指令很重要),那么所测量的CPU指令将与花费的时间成比例。如果涉及大量I/O或多个进程,则这是无用的。然后您应该使用采样分析器,如sysprof或gprof (编辑2020:perf)。它以间隔检查进程位于哪个函数中,并提供更少扭曲的结果。
使用这个链接。我认为像Callgrind
这样的工具应该可以解决问题。