【问题标题】:Clock_gettime showing high usage during profiling of codeClock_gettime 在代码分析期间显示高使用率
【发布时间】:2013-07-22 13:02:17
【问题描述】:

我正在使用 gprof 分析 netbsd 上的用户级应用程序,并看到 clock_gettime 使用了 30% 以上的周期。 Gprof 没有显示从哪里调用它(它显示了一些显然不调用clock_getttime 的函数)。 该应用程序使用第三方代码,包括 libevent 1.4(似乎使用 clock_gettime)。我考虑从中删除呼叫,但无法确定太多。

  1. 我不明白为什么要花这么多时间。任何输入将不胜感激。我还看到 gettimeofday 需要很多周期。一般来说,为什么要获得时间会涉及这么多处理周期
  2. 有没有一种方法可以优化clock_gettime() 或者我们可以使用任何其他调用?
  3. gcc 是否有可能在使用 -pg 编译时将这个调用添加到代码中以用于分析目的? 感谢您的任何回答

【问题讨论】:

    标签: clock libevent gprof gettimeofday


    【解决方案1】:

    这一切都与您的程序正在执行的其他操作有关,请记住,如果您正在执行任何 I/O,则您的程序使用的实际 CPU 时间可能很小,并且gprof 看不到其他任何内容. 因此,如果一些对计时例程的调用被卡在了那里,并且它们被调用得足够频繁,那么它们肯定会显示出很高的百分比。

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

    【讨论】:

    • 谢谢。有没有办法优化clock_gettime或比较clock_gettime可能使用的不同计时器的性能
    • @doon:看,我不会那样优化。我在自己的代码中寻找花费时间的原因。 I use this method.
    猜你喜欢
    • 2016-04-08
    • 2010-10-27
    • 2020-08-07
    • 1970-01-01
    • 1970-01-01
    • 2014-06-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多