Clock_gettime在分析代码期间显示高使用率

时间:2013-07-22 13:02:18

标签: clock libevent gprof gettimeofday

我正在使用gprof在netbsd上分析用户态应用程序,并使用超过30%的周期查看clock_gettime。 Gprof没有显示调用它的位置(它显示了一些显然不调用clock_getttime的函数)。 该应用程序使用第三方代码,包括libevent 1.4(似乎使用clock_gettime)。我试着从那里删除电话,但无法确定。

  1. 我不明白为什么要花那么多时间。任何输入将不胜感激。我也看到gettimeofday需要很多周期。一般来说,为什么要花时间涉及如此多的处理周期
  2. 有没有办法可以优化clock_gettime(),还是可以使用任何其他调用?
  3. 当使用-pg编译时,gcc本身是否可以将此调用添加到代码中以进行性能分析? 谢谢你的回答

1 个答案:

答案 0 :(得分:1)

这完全取决于你的程序正在做什么,请记住,如果你正在进行任何I / O,你的程序使用的实际CPU时间可能很小,gprof看不到还要别的吗。 因此,如果对定时例程的某些调用卡在那里,并且它们经常被调用,那么它们肯定会显示出很高的百分比。

为什么gprof没有显示他们被调用的位置? 对于使用-pg编译的例程,它会尝试确定在输入任何例程时调用者是谁。 尝试,但这并不意味着它成功。 无论如何,that's gprof