11

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

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

所以,我的问题是“有没有办法为 Firefox 3 提供某种进程浏览器或任务管理器之类的东西?”

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

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

我知道 FireBug,但我无法想象如何使用它来确定哪个选项卡正在使用大量资源。

有什么建议或见解吗?

4

5 回答 5

9

这可能是令人敬畏的 firefox3 fsync "bug",这是一大堆失败。

总之

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

所以,我的问题是,有没有办法为 Firefox 3 提供某种进程浏览器或任务管理器之类的东西?

由于 Firefox 的构建方式,目前这是不可能的。但是新的 Internet Explorer 8 Beta 2 和刚刚发布的 Google Chrome 浏览器正朝着这个方向发展,所以我想 Firefox 也会朝着这个方向发展。

这是来自 Mozilla 的 John Resig 和 jQuery 在该主题上声名鹊起的帖子( Google Chrome 进程管理器)。

于 2008-09-02T08:37:30.710 回答
1

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

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

于 2008-08-11T15:42:35.903 回答
1

对此进行了彻底的讨论,解释了影响 FF 3.0 之前版本的所有与 fsync 相关的问题。一般来说,从那以后我也没有看到过这种行为,如果您的系统也没有执行 IO 密集型任务,那么它真的不应该是一个问题。Firebug/Venkman 是很好的调试器,但如果为别人的代码 IMO 找出这类问题,他们会很痛苦。

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

于 2008-08-20T03:47:03.833 回答
1

XUL Profiler是一个很棒的扩展,它可以指出扩展和客户端 JS 在 CPU 方面的问题。它不适用于每个选项卡,而是每个脚本(或左右)。您通常可以手动将这些 .js 脚本与您的选项卡或扩展名关联起来。

还值得一提的是,谷歌浏览器内置了一个非常好的任务管理器,可以为每个选项卡、扩展程序和插件提供内存和 CPU 使用率。

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

跟踪 XUL 和页面上下文中的所有 JS 调用和绘制事件。构建动态显示正在重绘的画布区域的动画。

从 FF 3.6.10 开始,它不再是最新的,因为它不再被标记为兼容。但它仍然有效,您可以覆盖与同样出色的MR Tech Toolkit 扩展的不兼容性。

于 2010-03-23T08:12:50.263 回答