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 版可以在此下载。
评论