我正在使用 http://valgrind.org/docs/manual/cl-manual.html 来分析我的应用程序。但我有一个问题,它是否显示
- 该函数内部消耗的时间
或者
- 在该函数调用中消耗的 CPU
我猜是目前它在 curl connect 中显示 90% 的使用率。我认为这是 i/o 绑定过程。
所以我认为它显示了该函数调用中消耗的时间。
我正在使用 http://valgrind.org/docs/manual/cl-manual.html 来分析我的应用程序。但我有一个问题,它是否显示
或者
我猜是目前它在 curl connect 中显示 90% 的使用率。我认为这是 i/o 绑定过程。
所以我认为它显示了该函数调用中消耗的时间。
文档中描述的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 实用程序的帮助下,我们得到了所需的输出文件。
==========
它可以显示各种东西,指令计数(CPU 时间的粗略代理)、估计的循环计数(也是 CPU 时间的粗略代理)或各种估计的缓存命中/未命中计数。