Firefox 3中的某种JavaScript任务管理器?

时间:2008-08-11 05:24:34

标签: javascript firefox memory cpu

最近我在Ubuntu Hardy Heron上遇到了Firefox 3的问题。

我会点击链接,它会挂起一段时间。我不知道它是Firefox 3中的错误还是运行过多客户端JavaScript的页面,但我想尝试稍微调试一下。

所以,我的问题是“有没有办法为Firefox 3提供某种过程资源管理器或任务管理器?”

我希望能够通过该页面上的JavaScript(或导致CPU /内存使用的页面中的任何内容)查看哪些选项卡正在使用我的处理器的百分比。

是否有人知道这样做的插件或类似的东西?还有其他人以另一种方式做过这种检查吗?

我了解FireBug,但我无法想象如何使用它来指示哪个标签使用了大量资源。

有任何建议或见解吗?

5 个答案:

答案 0 :(得分:8)

可能是awesome firefox3 fsync "bug",这是一堆巨大的失败。

总结

  • Firefox3将其书签和历史记录保存在SQLite数据库中
  • 每次加载页面时,都会多次写入此数据库
  • SQLite非常关心您不会丢失书签,因此每次写入时,都会指示内核将其数据库文件刷新到磁盘并确保完全写入
  • linux的许多变种,当被告知要像这样冲洗时,刷新每一个文件。如果您有后台任务执行任何类型的磁盘密集,这可能需要一分钟或更长时间。
  • 内核使firefox在发生此刷新时等待,这会锁定UI。

答案 1 :(得分:3)

  

所以,我的问题是,有没有办法为Firefox 3提供某种进程资源管理器或任务管理器?

由于Firefox的构建方式,目前无法实现。但是新的Internet Explorer 8 Beta 2和刚刚宣布的谷歌Chrome浏览器正朝着这个方向前进,所以我想Firefox也会在那里前进。

以下是来自Mozilla的John Resig的帖子( Google Chrome Process Manager )和关于这个主题的jQuery成名。

答案 2 :(得分:1)

Firefox没有“过程浏览器”工具;但是http://developer.mozilla.org/en/docs/Venkman有分析模式,您可以用它来查看chrome花费的时间(意思是非内容,不是网页)脚本。

从我读过的内容来看,DTrace对于这类事情也许有用,但它需要创建一个自定义构建并可能向源添加额外的探测。我自己还没玩过它。

答案 3 :(得分:1)

有一个thorough discussion of this解释了影响3.0之前版本FF的所有与fsync相关的问题。一般来说,我从那时起也没有看到过这种行为,如果你的系统不是在做IO密集型任务,那么它根本不应该是一个问题。 Firebug / Venkman是一个很好的调试器,但是对于其他人的代码IMO来解决这些问题会很痛苦。

我也希望有一种简单的方法可以通过标签查看Firefox中的CPU利用率,因为我经常发现自己使用FF占用100%CPU,但不知道哪个部分导致问题。

答案 4 :(得分:1)

XUL Profiler是一个很棒的扩展,它可以指出扩展和客户端JS在CPU方面消失了香蕉。它不适用于每个选项卡,但是每个脚本(或左右)。您通常可以手动将这些.js脚本与您的标签或扩展程序相关联。

值得一提的是,Google Chrome内置了一个非常好的任务管理器,可以为每个标签,扩展程序和插件提供内存和CPU使用率。

  

[XUL Profiler]是一个Javascript探查器。它   显示每种方法中的经过时间   图形,以及浏览器画布区域   重绘以帮助追踪消费   CPU块代码。

     

跟踪所有JS调用和绘制事件   在XUL和页面上下文中。建立一个   动画显示动态   帆布区域被重新绘制。

自FF 3.6.10起,它不是最新的,因为它不再标记为兼容。但它仍然有效,你可以用同样令人敬畏的MR Tech Toolkit extension覆盖不兼容性。