在 Chrome 调试器的函数列中,“(program)” 是什么?
在 Chrome 调试器的函数列中,“(program)” 是什么?
(程序)
是Chrome浏览器本身,它是调用所有其他代码的树的根...它之所以存在是因为从本地代码到JavaScript、资源加载等跳转需要有一个起点 :)
您可以在Chrome开发者工具文档中看到treeview示例。
我认为(程序)是本地代码而不是树的根。
参见此线程:
https://bugs.webkit.org/show_bug.cgi?id=88446
所以更像系统调用,而不像主函数。
显然它包括空闲时间。 此外,可从 chrome://profiler/ 进行(程序)的一些分析。
正如@Nick所说,它必须从某个地方开始。
看起来CPU Profiler部分与许多基于gprof相同概念的其他分析器类似。
例如,self几乎是一个无用的数字,除非有像编辑大量数字数组的冒泡排序之类的代码。这种情况很少见。
Total应该包括被调用者,因此更有用。但是,除非在阻塞时间和运行时间期间进行采样,否则它仍然几乎没有用处,除了对于完全受限于CPU的程序。
它通过函数而不是代码行为您提供这些统计数据。这意味着(如果您可以依赖Total百分比),该函数的成本就是这么多,也就是说,如果您可以通过存根使其花费零时间,那么这个百分比就是您将节省的时间。
因此,如果您想专注于昂贵的函数,则需要在其中搜索可以优化的内容。为了做到这一点,您需要知道时间是如何在函数的代码行之间细分的。如果您按代码行成本计算,它将直接带您进入那些行。