【发布时间】:2011-04-20 08:42:53
【问题描述】:
Chrome调试器功能栏中的“(程序)”是什么?
【问题讨论】:
标签: javascript google-chrome-devtools
Chrome调试器功能栏中的“(程序)”是什么?
【问题讨论】:
标签: javascript google-chrome-devtools
(program) 是 Chrome 本身,调用所有其他代码的树的根...它在那里是因为从本机代码跳转到 JavaScript、资源加载等必须从 某处 开始: )
您可以查看树视图的示例in the Chrome developer tool docs。
【讨论】:
我相信(程序)是本机代码,而不是树的根。
看到这个帖子:
https://bugs.webkit.org/show_bug.cgi?id=88446
因此,更像系统调用而不是 main()。
显然它包括空闲时间。此外,(程序)的一些分析可以从 chrome://profiler/
【讨论】:
正如@Nick 所说,它必须从某个地方开始。
看起来 CPU Profiler 部分与许多其他基于 same concepts as gprof 的分析器一样。
例如,self 几乎是一个无用的数字,除非您可以编辑某些代码中的大数组数字的冒泡排序。极不可能。
Total 应该包括被调用者,这样更有用。但是,除非在阻塞时间和运行时间都采集样本,否则除了完全受 CPU 限制的程序外,它仍然毫无用处。
它通过函数而不是代码行为您提供这些统计信息。这意味着(如果你可以依赖 Total 百分比)一个函数会花费那么多,从某种意义上说,如果你能以某种方式让它花费零时间,例如通过存根,这个百分比就是多少您将节省的时间。
因此,如果您想专注于一项昂贵的功能,您需要在其中寻找可以优化的内容。为此,您需要知道时间是如何在函数中的代码行中细分的。如果您在代码行的基础上花费了成本,它将直接将您带到这些行。
我不知道您是否能够获得更好的分析器,例如在行级别报告的挂钟堆栈采样器,例如Zoom。这是how I do it。
【讨论】: