通过选项卡或mac上的firefox上的加载项检查CPU使用情况[复制]


13

这个问题在这里已有答案:

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

Answers:


6

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

当你去的时候about:memory,你应该看到一个按层次排列的内存分配列表。列表中的第一个顶级项应为Explicit Allocations。在那下面是几个叶子节点。您正在寻找的是窗口对象。在此之下,标记为“顶部”的大多数节点都指向标签(如果您加载网站,您将看到“顶部”旁边的地址)。例如,我看到:

├───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),但我相信这适用于旧版本。


谢谢,我没有注意到任何内存泄漏。似乎记忆往往保持相当稳定。只是在一段时间后,cpu突然出现并保持这种状态。
克莱尔

11
问题主要是关于CPU使用率,而不是内存。
laggingreflex 2013年

@laggingreflex:是的,我知道。我回复了声明“但它似乎与内存使用完全没有关系。” 然而,回顾它,也许克莱尔实际上意味着“CPU”而不是“记忆”。
InnerPortal 2013年

使用Firefox 38(在Linux上运行),我必须单击Measure下面Show Memory Reports以生成和查看您描述的树。(如果在所有平台上都相同,那么它可以使答案更加完整。)
joeytwiddle 2015年

5

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 > OptionsUse Hardware Acceleration When Available

建议使用Adblock PlusNoScript两个附加组件在您正在查看的页面上有选择地阻止不必要的元素,包括Flash。

3.JavaScript

您在其中一个选项卡中查看的网站中的JavaScript可能编码错误,并通过循环浪费CPU。

最好的解决方法是使用NoScript来避免从您不信任的网站执行JavaScript。这也是一种安全措施,任何人都应该使用它来避免 跨站点脚本攻击。

4.Profiling

如果不清楚哪个网站导致高CPU,可以在Firefox中使用性能分析,尽管这不是一个简单的练习。

同样进行性能分析的调试器是:

如果您是一名开发人员并且感觉像是一次冒险,并且因为您使用的是Mac,那么您可以使用DTrace, 如使用DTrace进行性能/优化JavaScript中所述,这是Mozilla开发人员使用的工具。


3

@claire:目前没有'简单'的方式,看看你想要什么。如果您采用harrymc的方式,您将找到有关问题根源的一些信息,但可能不确定。

如果你想采用'硬'的方式,这将显示你在firefox和/或它的插件中占用你的CPU,你需要在你的环境中开始调试你的firefox(有时它不仅仅是firefox和/或插件本身,但他们依赖的是一个腐败的lib。如果您对编程有所了解,这里有热门的完整解释。XCode可以从苹果免费下载:

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

但是您不需要调试完整的Mozilla代码,但是您会发现与提高CPU使用率相关的点。这可以告诉你问题的确切位置(如此糟糕的循环等)。


1

如果由于某种原因你的Firefox占用并占用你所有的CPU使用量,那么你可以尝试限制no。处理器和CPU将为该进程提供的优先级,以减少CPU使用率。

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

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


1
抱歉我的错误,我忘了读你在MAC上使用firefox。我没有太多的MAC经验,但如果它包含任何像Windows一样的任务管理器,这种方法只适用于Windows系统。
猎人

3
这是一个很好的建议,但绝不会接近回答实际问题。
laggingreflex 2013年
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.