为什么 Firefox 每隔几秒钟就会导致 CPU 使用率高“峰值”?

为什么 Firefox 每隔几秒钟就会导致 CPU 使用率高“峰值”?

当我启动 Firefox 时,一段时间内没有出现任何问题,但几天后,CPU 开始激增。在峰值期间,Firefox 会冻结然后停止。峰值每七到十秒出现一次,每次峰值持续两到三秒。如果我在打字时出现峰值,则只有在峰值之后才会输出字符。我最初以为这个问题是由于 Flash 引起的,所以我禁用了它,但问题仍然存在。

此外,几天后 Firefox 的内存使用量会增加到 600 MB 多。

我使用的 Firefox 插件和扩展列表如下这里

答案1

我怀疑它要么是垃圾收集器,要么是循环收集器。

改为。现在有关 GC 和 CC 的通知应该在错误控制台中可用(++ )如果它们的时间和持续时间与冻结相匹配,那么这就是你的问题about:configjavascript.options.mem.logtrueCrtlShiftJ

当我遇到此问题时,我通过删除我的 Firefox 配置文件并从头创建一个新配置文件来修复它。Firefox 配置文件往往会随着时间的推移积累大量垃圾。

即使这样,这也不是一个完美的解决方案。如果你在 Firefox 中打开很多标签(超过 100 个)或很多扩展,并让 Firefox 连续运行几天,它必然会变慢。你需要每隔一段时间重新启动 Firefox。

如果您像我一样,倾向于收集大量标签,而有时需要处理这些标签,我使用的另一个技巧是将其设置browser.sessionstore.max_concurrent_tabs为 0。这将阻止 Firefox 在启动时加载您会话中的所有标签。相反,它会在您切换到这些标签时加载它们。我发现,这样做,再加上偶尔重新启动 Firefox,可以大大减少拥有大量标签的负担。

答案2

在 中about:config,设置browser.sessionstore.interval为一个大数(应该是10,00015,000;设置为大约600,000)。

基本上,这是 Firefox 更新“已保存会话”的时间间隔(以毫秒为单位)。如果您打开了许多选项卡,或者浏览历史记录很长(或者,我的情况往往是两者兼有),则sessionstore.js每 10 或 15 秒就会向文件写入大量数据,这可能会导致 Flash 视频短暂冻结,甚至每隔几分钟就导致整个计算机冻结。

将此值设置为较大的数字有一个缺点,即如果 Firefox 崩溃,当您尝试恢复时,您会丢失最后几分钟的浏览历史记录。在我看来,这是值得付出的代价。

你的 CPU 峰值应该变成很多不太频繁。

答案3

它本身不会修复内存泄漏。但启用“在选择之前不加载选项卡”至少会在您重新启动后单击选项卡之前不加载选项卡,从而大大降低内存消耗。

我还发现使用CCleaner清理 Firefox“会话”有点帮助。首先备份所有打开的选项卡,因为它会删除会话恢复信息。在运行 CCleaner 之前,我的 sessionstore.js 文件大约有 800 KB,但之后它下降到大约 6 KB。

有关 sessionstore 的更多信息,请参阅已解决:Firefox 每 10 秒冻结一次,滚动时出现跳跃

卸载 Flashblock 解决了 Firefox 的高 CPU 问题。也许 Flashblock 和 Adblock Plus 或其他扩展程序不兼容?

人生苦短,没时间浪费在 Firefox 上。我刚刚导出了书签,卸载了 Firefox,然后删除了机器上的所有 Firefox 文件夹,然后重新安装了 Firefox,并恢复了书签。现在,它的运行速度比全新安装的 Google Chrome 还快。

答案4

如果您还没有这样做,您可以尝试升级到最新的 Firefox。他们已经努力减少这些内存泄漏。

相关内容