Chrome Profiler中的Javascript计数函数调用

时间:2016-09-28 06:29:53

标签: javascript google-chrome profiling google-chrome-devtools

是否可以从Chrome配置文件(开发人员工具)获取信息功能的次数?
我在代码中找到了如何做到这一点:

console.count("Function called");

和一些非常古老的(2011年及周边)主题和功能请求,如this one。但是,如果可以记录每个函数调用的计数,则没有新信息。

有时你会发现有些调用会在一秒钟内多次调用,如果只调用一次会大大提高性能(为执行添加一些延迟)。为了跟踪这个功能,计数器是必要的。

1 个答案:

答案 0 :(得分:11)

由于Chrome开发工具中的标准探查器是采样探查器,因此会在时间轴/ CPU探查器中看到函数调用计数。

采样分析器以预定义的间隔获取执行堆栈快照。在即将执行此操作时,将暂停JS执行并记录当前执行堆栈上的函数。这就是您在时间轴的火焰图中看到的内容。

鉴于所描述的行为,应该清楚的是,采样分析器可以记录所有函数调用(可以调用函数并在2个测量暂停之间完成执行)。

还有其他分析器可以记录所有函数调用,最容易使用的可能是Web Tracing Framework。它通过检测代码来工作(通过用测量代码包装每个函数调用来重写它)。 WTF需要花费更多时间进行设置(检测步骤)并且会对测量的时间产生影响(因为它注入新代码)但至少可以显示所有函数调用。

最重要的是,没有一个分析器可以完美适用于所有跟踪作业。您需要根据要测量的内容使用不同的。有一个很好的讨论,详细介绍了不同的分析器,强烈推荐:https://www.youtube.com/watch?v=nxXkquTPng8