是否可以实时关注JavaScript?

时间:2011-05-01 12:42:23

标签: javascript debugging optimization

我想看看JavaScript解释器实时做了什么,它正在读取哪一行以及它正在运行哪个函数,因为我想对JavaScript的每一小部分进行完整的调试来实现它快点。为此我需要一些工具来告诉我解释器正在做什么,如果它正在定义一个变量,如果它正在运行一个函数,如果它在一个循环中,检查当前的间隔(在setInterval中定义)。 / p>

据我所知,Firebug无法做到这一点。

3 个答案:

答案 0 :(得分:6)

查看Firebug中的javascript标签,它是一个完整的调试器。设置一个断点,当您的代码点击该行时,您将获得对变量的完全调试访问权限.Chrome在developer tools中具有类似的功能,这些功能包含在标准安装中。

答案 1 :(得分:0)

正如另一个答案所说,如果您想逐步进行,设置调试点是可行的方法。

但是,由于您似乎对提高性能感兴趣,因此您可能需要考虑仅优化应用程序中的真正瓶颈。要查看哪些功能最常运行,以及其他统计信息,您可能需要查看console.profile()(在firebug和chrome中均可用)。

以下是一个例子:

console.profile('myProfile');
//some code you want to know more about
console.profileEnd();

您也可以通过单击“控制台”面板(在firebug中)/“配置文件”面板(chrome)中的配置文件按钮手动启动它

在Chrome中,您可能还需要查看Heap Snapshots(它们会告诉您内存使用情况)。

答案 2 :(得分:0)

如果您希望自动监控/分析您的计划,请查看Chrome的Debugger Protocol。它提供了一个程序化的API。我相信(但可能是错的)这就是建立Web Inspector和node-inspector之类的工具。

如果你想要的东西超过标准的Firebug / Web Inspector接口的构建,你将不得不使用这样的东西或者开始攻击V8和Gecko JS解释器的内部。