1

I am interested in testing speed of some function calls from the code written in C/C++. I searched and I was directed to use Valgrind platform with Callgrind tool.

I have briefly read the manual, but I am still wondering how I can utilize the functionality of the tool to evaluate the time of my function runtime speed.

I was wondering if I could get some pointers how I can achieve my goal.

Any help would be appreciated.

4

1 回答 1

2

使用调试符号编译您的程序(例如 GDB 符号可以正常工作,使用“-ggdb”标志激活)。

如果您正在执行这样的程序:

./program

然后使用 Valgrind+Callgrind 使用以下命令运行它:

valgrind --tool=callgrind ./program

然后,Callgrind 将生成一个名为 callgrind.out.1234 的文件(1234 是进程 ID,运行时可能会有所不同)。使用以下命令打开此文件:

cg_annotate callgrind.out.1234

您可能想使用 grep 来提取您的函数名称。在左栏中,显示了用于该功能的指令数量。但是,使用相对较少指令的函数将被忽略。

如果你想看到输出一些漂亮的图形,我建议你安装 KCachegrind。

于 2014-11-04T09:52:07.863 回答