如何找到运行 AngularJS 应用程序时冻结 Chrome 的内容?
How to find what freezes Chrome when it runs an AngularJS application?
我正在检查 AngularJS 应用程序的性能问题。
执行特定操作时,CPU 使用率达到 100%,Chrome window 冻结,我必须使用 Chrome 手动终止进程'任务管理器。
我尝试调试应用程序(DevTools 的 Sources 选项卡),但是应用程序非常大并且代码被压缩,这意味着找不到问题easy:我看到了很多由摘要循环触发的代码,但无法找出真正的罪魁祸首。
有帮助的是能够在应用程序冻结后对其进行分析;我很确定分析器会立即显示实际的瓶颈。我可以在冻结发生之前成功启动探查器(性能 选项卡),但是一旦应用程序冻结,当我单击 停止 按钮时,正在加载配置文件 window 停留在百分之零(我等了十五分钟只是为了确定,它仍然是零),所以我想它也被冻结了。
因此我的问题是:
当我无法通过简单地调试应用程序找出导致应用程序冻结的原因时,如何找到它?
为了回答我自己的问题,解决方案是使用不同的浏览器。令人惊讶的是,Firefox 让我在冻结期间分析应用程序。剩下的部分很简单,正如我所料:通过比较冻结前后的性能分析结果,可以看出哪些代码被重复执行了。
也感谢 Aleksey Solovey 。
我正在检查 AngularJS 应用程序的性能问题。
执行特定操作时,CPU 使用率达到 100%,Chrome window 冻结,我必须使用 Chrome 手动终止进程'任务管理器。
我尝试调试应用程序(DevTools 的 Sources 选项卡),但是应用程序非常大并且代码被压缩,这意味着找不到问题easy:我看到了很多由摘要循环触发的代码,但无法找出真正的罪魁祸首。
有帮助的是能够在应用程序冻结后对其进行分析;我很确定分析器会立即显示实际的瓶颈。我可以在冻结发生之前成功启动探查器(性能 选项卡),但是一旦应用程序冻结,当我单击 停止 按钮时,正在加载配置文件 window 停留在百分之零(我等了十五分钟只是为了确定,它仍然是零),所以我想它也被冻结了。
因此我的问题是:
当我无法通过简单地调试应用程序找出导致应用程序冻结的原因时,如何找到它?
为了回答我自己的问题,解决方案是使用不同的浏览器。令人惊讶的是,Firefox 让我在冻结期间分析应用程序。剩下的部分很简单,正如我所料:通过比较冻结前后的性能分析结果,可以看出哪些代码被重复执行了。
也感谢 Aleksey Solovey