1

我正在使用 http://valgrind.org/docs/manual/cl-manual.html 来分析我的应用程序。但我有一个问题,它是否显示

  1. 该函数内部消耗的时间

或者

  1. 在该函数调用中消耗的 CPU

我猜是目前它在 curl connect 中显示 90% 的使用率。我认为这是 i/o 绑定过程。

所以我认为它显示了该函数调用中消耗的时间。

4

2 回答 2

1

文档中描述的valgrind的callgrind工具默认只启用了Instructions read (Ir)。

工具本身不适合计算函数消耗的时间,参考这里

为了获取时间和 CPU 使用率,我更喜欢在 Unix 中以详细模式运行“时间”命令

/usr/bin/时间 -v

但是,我们可以获得其他实用程序,例如

==来自文档的片段===

指令读取(“I1mr”/“ILmr”)、数据读取访问(“Dr”)和相关缓存未命中(“D1mr”/“DLmr”)、数据写入访问(“Dw”)和相关缓存未命中( “D1mw”/“DLmw”)通过启用选项

--cache-sim=是

还可以获得其他实用程序,例如执行条件分支的数量和相关的预测器未命中(“Bc”/“Bcm”),通过启用执行间接跳转和跳转地址预测器的相关未命中(“Bi”/“Bim”)选项

--branch-sim=是

最后在 callgrind_annotate 实用程序的帮助下,我们得到了所需的输出文件。

==========

于 2013-11-15T06:06:04.500 回答
0

它可以显示各种东西,指令计数(CPU 时间的粗略代理)、估计的循环计数(也是 CPU 时间的粗略代理)或各种估计的缓存命中/未命中计数。

于 2011-09-30T07:46:11.340 回答