为什么我的Firefox内存使用量会随着使用量的增加而不断增加,而从未恢复到初始水平?


13

我主要使用Firefox作为我的网络浏览器。我注意到在打开和关闭某些选项卡后,Firefox的内存使用量变得越来越大。

这个事实常常使我崩溃(故意使用任务管理器),然后再次打开它,仅选择我需要的某些选项卡。在某些情况下,我会打开所有以前打开的选项卡。有趣的是,即使在这种情况下,内存使用率也远低于关闭Firefox之前的水平。

所以我的问题是为什么会这样?为什么关闭选项卡没有帮助(至少没有那么大帮助)?有没有办法在不关闭Firefox的情况下减少内存使用量?


1
当您说“记忆”时,您是什么意思?居民集大小?承担费用?虚拟地址大小?您如何测量以及使用什么操作系统?另外,为什么您故意使它崩溃?您有某种实际问题吗?还是您更喜欢浪费RAM而不是使用RAM?
David Schwartz 2014年

1
抱歉,缺少信息。我使用的是win7,我指的是RAM内存,我只是在观察任务管理器选项卡即可进行测量,因此内存估计可能不太准确。事实是,firefox有时会使用高达2Gb的内存,这对于打开的选项卡的数量和内容似乎并不合理。
Eypros

哪个选项卡-“工作集(内存)”?
David Schwartz 2014年

1
我可以推荐一些小插件,以方便的方式重新启动firefox。addons.mozilla.org/ru/firefox/addon/restartless-restart
Mikhail Moskalev 2014年

Answers:


5

在地址栏中输入about:memory。点击“最小化内存使用量”。

https://support.mozilla.org/zh-CN/kb/firefox-uses-too-much-memory-ram


+1。我不知道它是否可以解决我的所有问题,但还是很有用,所以谢谢。
Eypros 2014年

7
这完全无法回答所提出的主要问题。“为什么我的Firefox内存使用量会随着使用量的增加而不断增加,而从未恢复到初始水平?”
David Schwartz 2014年

而且,顺便说一句,仅在进行测试或基准测试时,您才想这样做。即使它不需要,它只会迫使您的系统浪费正在使用的内存。(如果需要的话,它会自动执行,编写Firefox的人并不愚蠢,不会让您无意中碰到一个隐藏的开关,只是为了让事情做得更好。)
David Schwartz 2014年

4

我首先想到的是某些插件会泄漏内存或使用很多内存。

例如,AdBlock Plus通常使Firefox显着增加内存使用量。原因是它将大样式表注入到每一帧中。(Ghostery是一种更节省内存的替代方法,尽管它有不同的用途。)

因此,如注释中所建议,如果内存使用似乎不合理,请尝试禁用所有插件,看看是否有帮助。


1
@screener提出了一种与AdBlock具有相同目的的替代方法,addons.mozilla.org
Roman Boiko

此答案显示了如何查找占用最多内存的
加载项

1

如果您需要RAM用于其他目的,只需重新启动Firefox。它将最小化它的内存使用量。

您甚至可以对Firefox说,重启后不必加载所有页面:

Firefox button -> Options -> Tabs -> Don't load tabs until selected

另外,我注意到Adblock Plus占用大量内存。Adblock Edge似乎没有此问题。禁用Adblock Plus也可以释放内存。


0

RAM无法保存供以后使用。您唯一的选择是使用它还是浪费它。具有8GB RAM的系统今天不能使用4GB,以便明天使用12GB。

简而言之,Firefox正在使用更多的内存,因为另一种选择是浪费该内存。它不会返回到初始级别,因为这样做会花费很多精力,并且花费大量精力也没有任何好处。

事实是,firefox有时会使用高达2Gb的内存,这对于打开的选项卡的数量和内容似乎并不合理。

如果另一种选择是浪费部分RAM并且不保留任何数据,那是完全合理的。至少,它允许Firefox使用多达2GB的内存,而不必分配更多的内存,这是一个胜利。释放和分配内存很费力。智能系统只有在有预期收益的情况下才会投入精力。他们当然不会做他们可能只需要稍后撤消的工作。

现代操作系统竭尽所能,以尽可能减少可用的RAM。可用内存永远浪费了。如果您在过去一小时内有1GB的可用空间,那么在过去的一个小时中,您从这1GB的存储中没有任何收益。如果您在想:“我现在想要该RAM可用,以便以后使用”,那就算了。现在,您可以使用它,并在以后使用它。这里没有痛苦的权衡。


7
也许我们正在进入关于什么有用的哲学对话。从我的角度来看,我不能使用您提到的包含“可能有用的信息”的内存,因为它是由firefox分配的。因此,我可以从正在使用的其他应用程序中获取内存不足的消息。
Eypros 2014年

5
@DavidSchwartz:这完全是胡说。“直接过渡内存”到底是什么?如果内存不足,则一个应用程序必须付出代价,因此另一个应用程序可以付出代价(替代方案是可怕的交换..)。“现代操作系统可以非常有效地做到这一点”-做什么?它们可以删除代码和库页面,因为它们可以重新感染,可以与FS缓存页面一起玩,但不能占用通常使用的内存(例如:firefox存储关闭的选项卡或图像,以便可以更快地打开它们)。
Karoly Horvath

11
-1的原因与@KarolyHorvath完全相同。在4 GB的机器上(现在只有“低于平均值”的机器),FF占用2.5 GB的常驻内存(我在Linux上)是不合理的,因为它会将内存从其他应用程序中夺走。当我关闭几个选项卡时,我希望FF释放现在未使用的内存,以便其他应用程序或内核本身(喜欢主动缓存,大大提高整体性能)可以使用它。这是原型开发人员/系统管理员的争议,如果您不再需要内存,则将其释放,在该系统上您并不孤单。
MoonSweep

8
拒绝为以下最愚蠢的想法之一投票:“让我们浪费记忆,因为担心它会被闲置”
Lemonsqueeze

7
您似乎在争辩说Firefox最多膨胀2Gb是可以的,因为该内存只是交换空间,因此不会阻止其他程序拥有2Gb。这是错误的。该2Gb大部分是脏页,必须刷新。出来 而且,当Firefox决定在该碎片上运行一些垃圾回收时,必须将其分页:这将以某种随机顺序发生,从而导致在传统旋转式硬盘驱动器上四处寻找。显然,不将2Gb写入磁盘并回读它的性能要比这样做好。
哈兹2015年
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.