我感兴趣的是用C / C ++编写的代码测试一些函数调用的速度。我搜索过,并被指示使用Valgrind平台和Callgrind工具。
我已经简要阅读了manual,但我仍然想知道如何利用该工具的功能来评估我的函数运行时速度。
我想知道我能不能指出如何实现目标。
任何帮助都将不胜感激。
答案 0 :(得分:2)
使用调试符号编译程序(例如,GDB符号工作正常,使用“-ggdb”标志激活)。
如果你正在执行这样的程序:
./program
然后使用Valgrind + Callgrind使用以下命令运行它:
valgrind --tool=callgrind ./program
然后,Callgrind将生成一个名为callgrind.out.1234的文件(1234是进程ID,运行时可能会有所不同)。使用以下命令打开此文件:
cg_annotate callgrind.out.1234
您可能希望使用grep来提取函数名称。在左列中,显示用于该功能的指令数。但是,使用相对较少量指令的函数将被忽略。
如果你想看到输出一些漂亮的图形,我建议你安装KCachegrind。