chrome中的javascript执行缓慢,分析器产生"(程序)"

Des*_*ted 17 profile performance google-chrome

当探查器将(程序)置于80%的顶部时,我将如何确定我的javascript应用程序中的挂断?我的逻辑是否太复杂,无法进行热点跟踪?我的记忆足迹太大了吗?这通常是什么原因?

更多信息:

Ale*_*lov 25

空闲循环("无所事事")也将呈现为"(程序)"(您可以将此SO页面分析几秒钟并获得100%(程序)),因此这并不表示本身存在不良情况.

另一件事是你实际看到你的应用程序滞后.然后(程序)将由V8绑定代码(以及它们调用的WebCore代码提供,基本上是任何东西:DOM/CSS操作,绘画,内存分配和GC,什么不是.)如果是这种情况,您可以记录应用程序的时间轴(切换到Timeline开发人员工具中的面板,然后按下Record底部状态栏中的按钮,然后运行您的应用程序一段时间.)您将看到许多内部事件,其时间为水平条.您将看到回流,样式重新计算,定时器触发,GC事件等(顺便说一句,最新的Chromium版本具有改进的内存分析器使用时间线,因此您也可以监视某些内部因素使用的内存.)

要诊断内存问题(需要多次完整GC循环的多次分配),您可以使用该Profiles面板.在代码的密集部分开始之前获取堆快照,在此代码运行一段时间后再执行另一个快照.然后比较两个快照(底部的右侧SELECT),看看发生了哪些分配,以及它们对内存的影响.

  • 更新:**(程序)**不再包含空闲时间。现在将其单独报告为**(空闲)**。 (2认同)