在 Mac 上的 Firefox 上通过选项卡或附加组件检查 CPU 使用情况

在 Mac 上的 Firefox 上通过选项卡或附加组件检查 CPU 使用情况

我的 Firefox 版本有一个失控的进程/线程,几分钟后,它就在我的 MacBook Pro(OSX 10.7.4)上占用了 100% 的 CPU。我尝试使用about:memoryabout:addons-memory试图找出导致该问题的原因,但似乎与内存使用情况完全无关。有没有办法按选项卡或附加组件查看 CPU 使用情况?

答案1

实际上,该about:memory选项卡确实显示了选项卡的内存分配;只是有点难以理解。

当你转到时about:memory,你应该看到一个按层次结构排列的内存分配列表。列表中第一个顶级项目应该是显式分配。下面有几个叶节点。您要查找的是窗口对象。在此之下,大多数标记为“top”的节点指的是标签(如果您加载网站,您将看到“top”旁边的地址)。例如,我看到:

├───29.63 MB (15.27%) -- window-objects
│   ├──12.64 MB (06.52%) ++ top(chrome://browser/content/browser.xul, id=3)
│   ├───6.84 MB (03.53%) ++ top(http://www.cnn.com/, id=31)
│   ├───4.55 MB (02.35%) ++ top(https://ftp.mozilla.org/, id=24)
│   ├───3.50 MB (01.80%) ++ (5 tiny)

前面的数字是内存使用情况,也是 Firefox 整体内存使用情况的百分比。

还显示了附加组件的内存使用情况,但不是按附加组件明确显示的。您必须搜索列表才能找到属于附加组件的所有组件,然后添加内存分配。

请注意,我处于 ​​Beta 频道(因此当前正在使用 Firefox 22.0b2),但我相信这适用于旧版本。

答案2

Firefox CPU 占用高的原因有多种,如下所述。

1.附加组件

CPU 问题通常由插件问题引起。首先应该做的测试是在没有插件的情况下启动 Firefox。

使用安全模式解决 Firefox 问题

在 Firefox 窗口顶部,单击 Firefox 按钮,转到“帮助”菜单并选择Restart with Add-ons Disabled...。Firefox 将启动并显示 Firefox 安全模式对话框。注意:您也可以在启动 Firefox 时按住 Shift 键以安全模式启动 Firefox。

您现在有两个选择:

单击“以安全模式启动”按钮将暂时禁用您的扩展程序和主题,关闭硬件加速并重置工具栏和按钮自定义设置。当您退出安全模式并正常启动 Firefox 时,您的扩展程序、主题和设置将恢复到进入安全模式之前的状态。

如果在安全模式下没有 CPU 问题,则问题出在您的某个附加组件上。您可以使用菜单Tools > Add-ons有选择地禁用附加组件,然后重新启动 Firefox,直到找到有问题的附加组件。

2.Flash

Flash 因此类问题而闻名。修复此问题的常用方法之一是禁用 Firefox 的硬件加速 通过使用菜单Tools > Options“高级”选项卡来取消选中Use Hardware Acceleration When Available

两个附加组件广告拦截插件无脚本建议有选择地阻止您正在查看的页面上不必要的元素,包括 Flash。

3.JavaScript

您在某个选项卡中浏览的网站中的 JavaScript 可能编码不正确并且通过循环浪费 CPU。

最好的补救措施是使用 NoScript 来避免执行来自您不信任的网站的 JavaScript。这也是任何人都应该使用的安全措施来避免 跨站脚本功绩。

4.分析

如果不太清楚哪个网站导致了 CPU 使用率过高,可以使用 Firefox 中的分析功能,尽管这不是一件简单的事情。

可以进行分析的调试器有:

如果你是一名开发人员,喜欢冒险,而且你使用的是 Mac,那么你可以使用跟踪 正如解释的那样使用 DTrace 提高 JavaScript 性能/优化,这是 Mozilla 开发人员使用的工具。

答案3

@claire:目前没有“简单”的方法来查看您想要的内容。如果您采用 harrymc 的方法,您将找到一些有关问题根源的信息,但可能并不确定。

如果您想采用“困难”的方式,这将向您显示 Firefox 和/或其插件中哪个正在消耗您的 CPU,您需要在您的环境中开始调试 Firefox(有时不仅仅是 Firefox 和/或插件本身,而是它们所依赖的损坏的库)。如果您对编程有所了解,这里有关于如何做到这一点的完整说明。XCode 可从苹果免费下载:

https://developer.mozilla.org/en-US/docs/Debugging_on_Mac_OS_X

但您不需要调试完整的 mozilla 代码,但您会找到与 CPU 使用率上升相关的点。这可以准确地告诉您问题出在哪里(例如不良循环等)。

答案4

如果由于某种原因,您的 Firefox 占用了所有 CPU 使用率,那么您可以尝试限制处理器的数量以及 CPU 赋予该进程的优先级,以减少 CPU 的使用率。

为此,请单击(Ctrl++ AltDel打开任务管理器,然后单击进程选项卡(显示所有进程及其扩展名的选项卡(基本上,就像在 Windows 上一样,所有进程都应以 .exe 扩展名结尾)。右键单击它并选择选择优先级设置优先级(如果设置为高于正常值,则将其设置为正常值,否则,如果设置为正常值,并且您想将其降低得更低,则选择低于正常的值)和设置亲和力限制参与该过程的处理器数量。设置所需的处理器数量,然后单击“确定”返回。检查是否有效。

请记住,这仅适用于多处理器计算机(如双核、四核等),并且 CPU 使用率与内存使用率不同。

相关内容