关于callgrind输出

时间:2011-09-30 04:24:07

标签: valgrind callgrind

我正在使用 http://valgrind.org/docs/manual/cl-manual.html 分析我的申请。 但是我有一个关于它是o / p的问题

  1. 该功能内部消耗的时间
  2. OR

    1. cpU在函数调用
    2. 中消耗

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

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

2 个答案:

答案 0 :(得分:1)

文档中所述的valgrind的callgrind工具默认只启用了指令读取(Ir)。

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

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

  

/ usr / bin / time -v

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

来自doc ===

==片段

指令读取(“I1mr”/“ILmr”),数据读取访问(“Dr”)和相关高速缓存未命中(“D1mr”/“DLmr”),数据写入访问(“Dw”)和相关的高速缓存未命中通过启用

选项缓存未命中(“D1mw”/“DLmw”)
  

- 缓存-SIM = YES

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

  

- 分支-SIM = YES

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

==========

答案 1 :(得分:0)

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