Chrome无响应调试

时间:2011-05-24 21:36:27

标签: javascript google-chrome

我有一个页面总是卡在chrome和safari中。页面加载得很好,然后达到25%CPU(4个核心 - 如果你愿意,那么100%)。它永远不会崩溃,但仍然没有反应。 Safari实际上说有一个反应迟钝的脚本。我已经在我的所有启动代码上放置了调试警报,代码运行得很好。我有“等待www ......”的消息,不会消失。 我怎么知道现在正在运行什么?有没有办法“转储”当前的javascript堆栈,即使选项卡没有响应?

我无法发送链接,因为该网站尚未为普通公众做好准备,所以如果您可以帮助解决问题的一般解决方案或任何方法,我会非常感激。

另一个奇怪的事情是,无响应的页面在本地运行时加载得很好。

任何帮助将不胜感激。

1 个答案:

答案 0 :(得分:7)

您可以使用webkit探查器找出它开始突袭的位置。打开开发人员工具(我的mac上的命令+ alt + i,也可以通过chrome右上角的扳手图标访问),转到Profiles选项卡,然后单击左下角的纯黑色圆圈。做导致减速的事情,然后再次单击纯黑色圆圈。实心黑色圆圈是“开始录制”/“结束录制”。然后,您可以看到哪些js函数花费的时间最多。您还可以获取堆快照,以便可以查看正在创建的所有js对象。非常有用。

Here is a screenshot that shows the profiles tab, and the icons on the lower left, to help you find it.