Chrome Profiler中的Javascript计数函数调用

Mak*_*kla 6 javascript profiling google-chrome google-chrome-devtools

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

console.count("Function called");
Run Code Online (Sandbox Code Playgroud)

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

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

pko*_*rce 11

由于Chrome Dev Tools中的标准分析器是一个采样分析器,因此您不会在时间轴/ CPU分析器中看到函数调用计数.

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

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

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

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