当 Chrome 运行 AngularJS 应用程序时,如何找到它冻结的内容?

Ars*_*nko 1 debugging performance profiling google-chrome angularjs

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

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

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

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

因此我的问题是:

当我无法通过简单的调试应用程序找出问题时,如何找到导致应用程序冻结的原因?

Ars*_*nko 5

要回答我自己的问题,解决方案是使用不同的浏览器。令人惊讶的是,Firefox 允许我在冻结期间分析该应用程序。剩下的部分很简单,正如我所料:通过比较冻结前和冻结后的分析结果,可以确定哪些代码被重复执行。

还要感谢 Aleksey Solovey的评论