Firebug 1.5 和 Firefox 3.6 修正严重性能缺陷

  • 崔康

2009 年 12 月 30 日

话题:Java编程语言JavaScriptIDE语言 & 开发架构

Firebug 如今已经成为 Web 开发人员的必备调试工具之一。不过很多 Firebug 的用户反映在使用该工具时,Firefox 网页浏览性能下降。Rob Campbell 在其博客中表示,即将发布的 Firebug 1.5 和 Firefox 3.6 将修正这个严重的性能缺陷

Rob Campbell 首先解释了 Firebug 引起 Firefox 性能下降的原因:

开发人员在启用 Firebug 的 Console/Script 面板时,Firebug 将启动内部的调试钩子(debugging hooks),不过让人吃惊的是:为了得到精确的调试信息,这些钩子禁用了 Firefox 的高效 Javascript JIT 编译器,即使在 Firebug 关闭的时候。

跟踪(tracing)是 Firefox 的 Javascript 引擎(即 SpiderMonkey)提高代码执行效率的重要机制。它是Just-in-Time编译器的基础,提高了 Firefox 3.5 的运行速度,对某些操作甚至是数量级的改善。没有跟踪,JS 引擎无法优化代码,从而导致运行速度显著下降。

他特别强调:如果你安装了 Firebug,那么你的 Firefox 浏览器很可能运行缓慢。如果你曾经启用了 Console 和 Script 面板并保持这种状态,即使 Firebug 被关闭也是如此。快速的解决办法是通过菜单禁用 Script 和 Console。

Boris Zbarsky 和 John Barton 在即将发布的 Firebug 1.5 和 Firefox 3.6 修正了这个性能缺陷,Rob Campbell 已经在内部构建版本中进行了验证。

Rob Campbell 表示,甚至连他自己都没有注意到这个性能下降问题,因为他已经习惯了在非 JIT 的环境下使用 Firefox,直到他禁用了 Console 和 Script,才吃惊的发现浏览一些网页变得非常迅速。

Firebug 1.5 除了修正了该缺陷之外,还增加了新功能,包括:

  • 引入了名为http-activity-distributor的服务,为 Net 面板提供更精确的计时功能。
  • 新的中断功能:HTML 面板中 Break-on-Mutation 功能允许你在 Javascript 修改 HTML 元素时获得中断;Net 面板中 Break-on-XHR 功能允许你在发送 XmlHttpRequest 时获得中断。

Firebug 1.5 beta 版可以在此下载。

Firefox 3.6 正式版已经推迟到 2010 年第一季度发布,目前读者可以下载到beta 版

Java编程语言JavaScriptIDE语言 & 开发架构