javascript - webkit 分析器

标签 javascript debugging webkit profiling sproutcore

什么是“自身”列和“总计”列? “总计”列加起来并没有达到 100%(高得多),而且看起来就像是 self 一样。我怀疑 self 是非累积的,而 Total 是。因此,如果 methodA 调用 methodB 调用 methodC,则在 self Id 中会分别看到每个方法调用的百分比,而在总计中,methodA 将显示所有三个方法的总数,methodB 将显示 2,依此类推。

这是正确的吗?

最佳答案

假设你有这个程序:

main()调用A()调用B()调用C(),C循环挂起10秒。 CPU-profiler 会说这样的话:

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。 然后,仅 CPU 分析器会说这样的话:

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

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

OTOH,如果样本处于挂钟时间,您将获得第一个输出。

更好的分析器类型是根据挂钟时间对调用堆栈进行采样,并告诉您包含时间占总时间的百分比,并在代码行级别(而不仅仅是函数)向您提供它。这很有用,因为它可以直接衡量如果执行较少的行可以节省多少,并且几乎没有问题可以隐藏。此类分析器的示例有 ZoomLTProf ,并且我被告知 OProfile 可以做到这一点。有a simple method适用于任何语言并且只需要一个调试器。

Here's a discussion of the issues.

关于javascript - webkit 分析器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3795162/

相关文章:

HTML/CSS Webkit 字体在 webkit 中渲染

javascript - 如何使用 javascript 或 jQuery 将输入字段的时间值限制为当前时间 + 1 小时?

javascript - 使用 "in"运算符时字符串何时是对象?

javascript - 什么是描述符?

laravel - Laravel,Openshift和错误消息

debugging - WP7 调试无需通过 USB 进行网络共享?

html -::-webkit-input-placeholder 不起作用

css - 将 WebKit 转换应用于伪元素

javascript - 如何使用 AngularJS 在我的 html 页面中的样式中添加一个值

php - 在代码中启动 xdebug?