如何找到在运行AngularJS应用程序时冻结Chrome的原因?



我正在检查AngularJS应用程序的性能问题。

执行特定操作时,CPU 使用率变为 100%,Chrome 窗口冻结,我必须使用 Chrome 的任务管理器手动终止进程。

我尝试调试应用程序(DevTools 的"源"选项卡),但应用程序非常大并且代码被缩小,这意味着找到问题并不容易:我看到很多代码由摘要周期触发,并且无法弄清楚哪个代码是真正的罪魁祸首。

可能有帮助的是能够在应用程序冻结后对其进行分析;我很确定探查器会立即显示实际的瓶颈。我可以在冻结发生之前成功启动分析器(">性能"选项卡),但是一旦应用程序冻结,当我单击"停止"按钮时,"加载配置文件"窗口将卡在零百分比(我等了十五分钟只是为了确定,它仍然为零),所以我想它也被冻结了。

因此,我的问题是:

当我无法通过简单地调试应用程序来弄清楚时,如何找到导致应用程序冻结的原因?

为了回答我自己的问题,解决方案是使用不同的浏览器。令人惊讶的是,Firefox 让我在冻结期间分析应用程序。正如我所期望的那样,剩下的部分很简单:通过将冻结前的分析结果与冻结之后的分析结果进行比较,可以确定重复执行的代码。

也感谢阿列克谢·索洛维的评论。

最新更新