代码之家  ›  专栏  ›  技术社区  ›  hvgotcodes

webkit探查器

  •  2
  • hvgotcodes  · 技术社区  · 14 年前

    1 回复  |  直到 14 年前
        1
  •  3
  •   Community Keith    7 年前

    假设你有这个程序:

    CPU探查器会这样说:

    total time: 10 sec
    routine   self%  inclusive%
       main      0         100
       A         0         100
       B         0         100
       C       100         100
    

    C的自我时间是10秒,100%。其他人的自我时间基本上是零。

    每个人的总(含)时间为10秒或100%。你不能把这些加起来。

    另一方面,假设C花了10秒钟来做I/O。

    total time: 0 sec
    routine   self%  inclusive%
       main      ?           ?
       A         ?           ?
       B         ?           ?
       C         ?           ?
    

    因为它使用的唯一实际CPU时间非常短,基本上没有样本命中它,所以要得到百分比,它要除以零。

    更好的探查器类型是对调用堆栈、挂钟时间进行采样,并告诉您包含时间占总时间的百分比,并在代码行级别将其提供给您,而不仅仅是函数。这是很有用的,因为它是一个直接的量度,如果执行更少的行可以节省多少,几乎没有问题可以隐藏。此类探查器的示例包括 Zoom LTProf 我听说OProfile可以做到。有 a simple method 它适用于任何语言,只需要一个调试器。

    Here's a discussion of the issues.