Firefox 7 精简快速

基于 Nicholas Nethercote(Firefox 开发者)最初发布的博客文章 此处

tl;dr
Firefox 7 现在使用的内存比以前版本少得多:通常减少 20% 到 30%,有时甚至减少 50%。这意味着 Firefox 和您使用的网站将更加快速、响应更灵敏,并且暂停次数更少。这也意味着 Firefox 发生崩溃或因内存不足而中止的可能性降低了。

如果您执行以下任何操作,这些优势将更加明显
– 长时间保持 Firefox 处于打开状态;
– 同时打开多个标签页,特别是包含大量图像的标签页;
– 查看包含大量文本的网页;
– 在 Windows 上使用 Firefox
– 同时使用 Firefox 和其他使用大量内存的程序。

背景

Mozilla 工程师启动了一项名为 MemShrink 的工作,其目标是通过减少内存使用量来提高 Firefox 的速度和稳定性。已经取得了很大的 进展,并且由于 Firefox 的 更快的开发周期,每个改进都将在短短 12-18 周内发布到最终版本中。Firefox 的最新更新是第一个从 MemShrink 成果中受益的通用版本,其优势显著。

量化改进
测量内存使用量很困难:没有标准的基准测试,您可以使用多种不同的指标,并且内存使用量会根据浏览器的操作而发生巨大变化。通常只打开少数几个标签页的用户与通常打开数百个标签页的用户会有完全不同的体验。(顺便说一句,后一种情况并不少见,尽管许多人对任何人打开这么多标签页的想法感到惊讶和难以置信。例如,请参阅 此处此处 的评论线程。)

耐力测试
Dave Hunt 和其他人一直在使用 MozMill 加载项执行“耐力测试”,他们打开和关闭大量网站并详细跟踪内存使用情况。Dave 最近对 Firefox 的开发版本进行了 耐力测试对比,在 30 个标签页中反复打开和关闭来自 100 个广泛使用的网站的页面。

[[以下数字是在 Firefox 最新版本处于 Beta 阶段时运行的,并捕获了每个浏览器版本在测试运行五次期间的平均和峰值“驻留”内存使用情况。“驻留”内存使用量是指 Firefox 正在使用的物理 RAM 量,因此可以说是衡量正在使用的实际机器资源的最佳指标。]]

2
3

测量结果在每次运行之间差异很大。如果我们对运行进行配对比较,我们会看到内存使用量的以下相对减少

最小驻留内存:1.1% — 23.5%(中位数 6.6%)
最大驻留内存:-3.5% — 17.9%(中位数 9.6%)
平均驻留内存:4.4% — 27.3%(中位数 20.0%)

以下两张图表显示了每个版本的 Run 1 期间内存使用量如何随时间变化。Firefox 6 的图表在前,最新版本在后。(注意:仅比较紫色的“驻留”线;绿色“显式”线的含义在版本之间发生了变化,因此这两条绿色线无法进行合理的比较。)
Firefox 7 显然要好得多;它的图表更低,并且变化更小。

ff6
ff7


MemBench

Gregor Wagner 有一个名为 MemBench 的内存压力测试。它依次打开 150 个网站,每个网站一个标签页,每个网站之间间隔 1.5 秒。这些网站主要来自 Alexa 的热门网站 列表。我在我的 Ubuntu Linux 机器上对 Firefox 6 和 7 的 64 位版本运行了此测试,该机器有 16GB 的 RAM。每次,我都让压力测试完成,然后打开 about:memory 以获取峰值驻留使用量的测量结果。然后,我多次点击 about:memory 中的“最小化内存使用量”按钮,直到数字再次稳定,然后重新测量驻留使用量。(点击此按钮不是普通用户所做的操作,但它对于测试很有用,因为它会导致 Firefox 立即释放将在垃圾回收运行时最终释放的内存。)

对于 Firefox 6,峰值驻留使用量为 2,028 MB,最终驻留使用量为 669 MB。对于 Firefox 7,峰值使用量为 1,851 MB(减少了 8.7%),最终使用量为 321 MB(减少了 52.0%)。后一个数字清楚地表明,碎片 在 Firefox 7 中是一个小得多的问题。
(相关的是,Gregor 最近在 MemBench 上 测量 了 Firefox 和 Google Chrome 的尖端开发版本。)


结论

显然,这些测试是合成的,并不完全匹配用户实际使用 Firefox 的方式。(改进基准测试是我们作为 MemShrink 工作的一部分正在进行的一项工作,但我们还有很长的路要走。)尽管如此,基本操作(在标签页中打开和关闭网页)是一样的,我们预计实际使用中的改进将反映测试中的改进。

这意味着用户应该会看到 Firefox 7 使用的内存少于早期版本——通常减少 20% 到 30%,有时甚至减少 50%——尽管改进将取决于确切的工作负载。事实上,我们收到了很多早期用户的反馈,他们表示最新的 Firefox 更新感觉更快、响应更灵敏、暂停次数更少,并且总体上比以前的版本更令人愉悦。

Mozilla 的 MemShrink 工作仍在继续。上面的耐力测试结果表明,Firefox 的 Beta 版本已经具有更好的内存使用情况,并且我相信随着时间的推移,我们将继续取得进一步的改进。

关于 Mozilla Hacks

更多 Mozilla Hacks 的文章…


40 条评论

  1. Duke S.

    谢谢,谢谢,谢谢……我正准备放弃我喜欢的浏览器,因为它内存泄漏到必须每天关闭并重新打开不止一次的地步!非常感谢这个修复!

    2011 年 9 月 27 日 12:09

  2. Joe Katzman

    只想说声非常感谢你们的努力。这确实解决了像我这样的许多网页浏览器用户的严重性能问题。

    即使我们现在没有打开数百个标签页,浏览器也是我们了解世界的窗口。我们很多人会将浏览器打开超过一周(感谢改进的桌面操作系统稳定性!)。将这段时间访问的网站数量加起来,数量肯定在增长。

    当我退出网页浏览器时,几乎总是对计算机性能问题的回应,而不是因为我当时想退出它。我真的很想停止这样做——而 about:memory 的技巧很好。

    当我不再需要使用它时,它会变得更好,因为 Mozilla 本身正在处理它。自己驾驶飞机很有趣,但让我们面对现实吧。我们大多数人只是想坐下来到达夏威夷,知道吗?

    2011 年 9 月 27 日 12:16

  3. Sean

    一直期待着这个版本的发布。我通常会将 Firefox 打开几天,在那段时间之后内存很容易达到 1GB,那时我通常会重新启动它。团队干得好!

    2011 年 9 月 27 日 13:23

    1. Sean

      我发表了一条匿名评论,表单重新填充了其他人的姓名和电子邮件地址——我的地址不是“s…..y@gmail.com”,但我认为 Sean 的是。可能需要修复一下。

      2011 年 9 月 27 日 13:26

  4. Joe Montibello

    由于内存问题,我开始考虑 Firefox 的替代方案。但你修复了它!谢谢。

    2011 年 9 月 27 日 13:24

  5. Daniele

    我知道这并不科学,可能毫无意义,但在我的 Lion 上,Firefox 4 和 Firefox 5 使用的内存约为 600MB,Firefox 7 也是如此,我无法看到任何改进。在 Windows 上,我用 Memory Fox(一个 Firefox 扩展)完全解决了内存问题,它(对我来说)将内存从 300-400MB 降到了 50-100

    2011 年 9 月 27 日 14:01

    1. Sante

      你提到的扩展程序并不能让 Firefox 使用更少的内存,它只是隐藏了 Windows 任务管理器中的内存消耗。要测试这一点,您需要查看您的可用内存,您会发现无论是否使用 Memory Fox,系统上的可用内存都相同。

      2011 年 9 月 29 日 14:36

  6. Till

    http://firefox7.org/ 链接到 https://hacks.mozilla.ac.cn/2011/09/firefox-is-lean-and-fast/,但此实际 URL 为 https://hacks.mozilla.ac.cn/2011/09/firefox-7-is-lean-and-fast/

    2011 年 9 月 27 日 15:39

  7. gary

    谢谢

    2011 年 9 月 27 日 22:41

  8. Jack_India

    首先,我要感谢你们解决了每个 Mozilla 用户都感到沮丧的主要问题。

    我想我可能会获得吉尼斯世界纪录,在 5 个月内让 Mozilla 崩溃 5000 次。

    所有崩溃都发生在使用超过 50 个或超过 100 个标签页时。
    我有 2GB 内存,当内存使用量达到 850 MB - 1GB 时,Firefox 通常会自动崩溃。

    当 Firefox 在我浏览电子邮件或任何其他重要主题时崩溃时,我失去了所有耐心。

    而我所能看到的只有 Mozilla 崩溃报告窗口。
    但是点击“提交报告”总是失败,因为它总是显示“Firefox 由于某些问题无法提交报告”。

    无论如何,我只希望看到 Firefox 在内存管理方面有许多改进,因为人们只希望浏览器能够稳定地无限期地浏览。

    —>非常感谢内存优化……

    2011 年 9 月 28 日 01:14

  9. Adam

    哇,区别很明显!我一直在使用 Chrome,因为 Firefox 之前占用了太多内存(我只有 512MB 内存卡)。现在看来 Firefox 做得更好了。Chrome 似乎花费了大部分时间将数据交换到磁盘,并且速度会变得非常慢。

    2011 年 9 月 28 日 06:34

  10. Carl114

    谢谢!我经常打开很多文章和页面(我是博主)。有时超过 30 个我希望更新能有所帮助。内存使用情况真的很糟糕。

    2011 年 9 月 28 日 08:20

  11. Bward

    这太好了,Firefox 在我的系统上已经使用了超过 1GB 的内存相当长一段时间了。它目前仅使用 485 MB。我对此感到非常沮丧。

    2011 年 9 月 28 日 13:38

  12. Rational Db8

    我们很多人出于各种原因仍在使用 3.6,包括不相信新版本不会有错误。我简要尝试过 5,然后又回到了 3.6。内存改进很棒,而且非常需要——但是,它与 3.6 相比如何?你们希望我们升级,然后向我们展示它与我们当前使用的版本相比如何。

    2011 年 9 月 29 日 02:19

    1. RAM

      我同意

      2011 年 10 月 27 日 14:18

  13. Ttoviyah

    很高兴听到有关此更新的信息,我当然希望这些内存问题会继续得到改进。我的 MacBook 配备了 2GB 内存,工作量很大,我上周刚刚切换到使用其他浏览器。我很高兴能回到 Mozilla 的阵营。

    2011 年 9 月 29 日 06:24

  14. Nigel Smith

    谢谢!这比早期版本有了很大的改进。

    2011 年 9 月 29 日 07:43

  15. Thomas Svenson

    毫无疑问,你们在减少物理内存使用方面取得了惊人的成果。自从升级到FF7以来,我还没有遇到过一次“未响应”的情况。它运行得更快了,我不必每小时重新启动它。

    然而,虽然释放了宝贵的RAM,但它仍然持续增加提交大小。现在对我来说已经超过3GB了,浏览器明显变慢了。如果这个问题也能得到解决,我很有可能卸载“重启Firefox”扩展,因为基于RAM改进的程度,我几乎不需要使用它。

    2011年9月29日 07:47

  16. Jabbawest

    这个标题看起来很熟悉。哦,对了,类似的话在Firefox 5中也说过,但它是一个内存和资源消耗大户。
    我知道它是免费的,但Firefox 3比Firefox 5占用更少的资源。测试反馈没有告诉你们这些事情吗?我知道我报告了Firefox 5的这个问题,但它仍然以同样的自夸的标题发布了。
    我已经受够了,请这次把它做好。

    谢谢

    2011年9月29日 10:23

  17. Jim

    在我的系统上,内存使用量似乎仍在攀升,没有真正明显的用途(使用今天的FF7.0和FF7.0.1)。

    我用一个空白页面启动Firefox——它使用了大约115-150MB的内存。
    然后我查看了7.0.1的发布说明,然后是这个黑客页面,阅读其他人发表的评论。所有这些都只使用了一个标签,而Firefox现在使用了291MB,并且还在不断增加。应用程序只打开了几分钟。

    我看到同样的内存增长也发生在所有扩展程序都被禁用时,因此它似乎与扩展程序无关——我已经验证了所有活动的插件都是最新的。除此之外,我不知道还能做些什么来阻止缓慢的增长(当我在这里键入评论的最后部分时,它已经增长到299.9MB了)

    2011年9月30日 10:20

    1. Jim

      我应该提到我的系统规格
      – Firefox 7.0.1
      – Mac OS X (10.6.8)
      – 4 GB内存

      2011年9月30日 10:22

  18. Kenneth

    非常感谢这个问题得到了修复……我以为我永远不会再使用我以前最喜欢的浏览器了,因为我暂时使用另一个浏览器来解决内存使用问题..现在很高兴能回来。

    2011年10月1日 04:14

  19. riqkla

    太棒了!!

    2011年10月2日 07:05

  20. Mark the Personalised wine Guy

    绝对是改进。

    2011年10月2日 09:44

  21. Rahly

    我不知道你们在做什么,但我已经将3.x之前的版本打开将近半年了,并且始终打开6-7个标签页,它的内存最大使用量为200兆。我唯一一次看到大量内存使用是在安装了Firebug之类的东西时,因为它会在内存中创建大约20-30个整个DOM的副本。相信我,删除那些糟糕的内存使用插件,就不会有问题了。

    2011年10月2日 17:38

  22. Transcontinental

    从Firefox 4开始,就发生了巨大的转变,而Firefox 7真正实现了“66号公路”。我每天都能注意到,启动速度更快(冷启动和热启动),页面渲染速度也更快。这里的一切都快速流畅(尽管我在一台1.6gH的机器上安装了60多个扩展程序!)。一项伟大的成就,正如他们所说,一项(始终)正在进行的工作。哇,当我看到自从Firefox 2.*(我将Firefox设置为默认浏览器时)以来完成的所有工作和改进时,我仍然感到震惊!真是一个很棒的浏览器 :)

    2011年10月4日 06:36

  23. thaddeusmt

    这个“MemShrink”项目是个好消息,而且早就应该推出了。由于Firefox使用一天后会占用1-2GB的内存(还有我最喜欢的扩展程序无法跟上这些快速发布的步伐……),我几乎完全停止使用Firefox了。让我们看看Firefox 7能真正做到什么!

    2011年10月6日 10:12

  24. Norman

    感谢分享内存改进的细节。过去几个月我一直都在Chrome上运行所有大型应用程序,只是为了避免在一夜之间多次重新启动Firefox。我现在有信心重新使用FF7并进行试用。希望情况确实有所改善。祈祷。

    2011年10月8日 15:02

  25. Super Slave

    Firefox确实变得更快、更流畅了。
    添加的功能和修复的错误也值得赞赏。

    不值得赞赏的是,Firefox的内存使用量似乎一直在向上攀升,尤其是在使用YouTube等网站时。

    为什么Firefox不在您在同一标签页中导航到新网站时释放网站?释放内存?只记住页面地址,而不是缓存中的整个视频?

    我喜欢Firefox,但有时它会占用我的内存,而这是最新的7.0版本。

    谢谢!

    2011年10月9日 19:03

  26. Erik

    对不起..但FF的每一个以前的版本在我的笔记本电脑上都运行得完美,这也是我一开始使用FF的原因。
    自从最近更新以来,我一直在想把这该死的东西从窗户扔出去,因为它只要打开任何页面就会冻结。当我需要填写表单或登录或其他操作时,它就会无响应几秒钟。这个问题出现在最新的FF更新中,并在7.01更新后仍然存在。

    这是我从IE切换到FF的主要原因之一,因为IE 8.0也存在同样的问题,而且在使用FF一年半没有问题后,我现在开始尝试其他东西..不知道是什么.. :(
    我的笔记本电脑:东芝Sat. A300D-14R 4GB,AMD x2 2.1 GHz。

    如果有人有解决方案,请告诉我..

    2011年10月10日 12:12

    1. Janet Swisher

      很抱歉听到您遇到问题。此支持主题可能相关:https://support.mozilla.com/en-US/questions/882138

      如果不是,您始终可以在支持网站上发布自己的问题。与在面向开发人员的博客上发表评论相比,这更有可能获得帮助。

      2011年10月10日 12:29

  27. jacquline kleiss

    我的技术人员说,通过关闭工具栏,它仍然会影响浏览器的速度,有没有办法关闭它,让浏览器更快。我并不是很懂技术,今年61岁了,只知道我喜欢什么..微笑

    2011年10月13日 10:00

  28. Pete

    Firefox 7根本没有解决这个问题。在我的旧笔记本电脑上,使用Windows XP和1GB的RAM,内存仍然会不断增加,因为我总是打开8-12个窗口。如果一直打开,内存仍然会严重增加。我必须不断使用Windows任务管理器关闭浏览器并恢复,才能将其降低到可管理的水平,每天2-3次。这很痛苦。Firefox 7很糟糕。我以前从未在Firefox 3上遇到过这个问题。我很抱歉我升级到5,现在又升级到7。太糟糕了!有什么解决办法吗?我更喜欢Firefox作为浏览器。

    2011年10月25日 02:05

  29. Pete

    在旧的XP笔记本电脑和1GB RAM上,Firefox 7比以往任何时候都更糟糕。我会出去几个小时,留下大约7-10个窗口打开,它会占用我所有的内存。我厌倦了反复关闭浏览器然后恢复。纯粹的垃圾。没有人有任何修复方法吗?我仍然更喜欢Firefox作为浏览器。或者最好删除Firefox 7并安装旧版本的Firefox 3?

    2011年10月27日 19:43

  30. angie

    我刚刚安装了Firefox 7。我不得不关闭它,因为它使用了1GB的RAM,导致我的系统不稳定。(我有2GB RAM,英特尔双核2.93处理器和3MB L2缓存。重新启动后,它现在使用237MB RAM,并且还在不断增加。我看看我是否会保留它。)

    2011年10月31日 20:21

  31. David

    Firefox 7并不比以前的版本好,我尽可能长时间地打开它,它在启动时自动使用大约4-500MB的内存,然后如果我将其保留几个小时,它会继续增加到超过1GB。也许是我的扩展程序,或者也许是我访问/保留打开的页面,但这太荒谬了,Chrome似乎没有这些内存问题。

    2011年11月1日 18:08

  32. vlad

    情况越来越糟了,把它命名为7并不会有什么帮助。
    一个拥抱的猴子和散播爱不会帮助我,当我不得不每小时重启FF7时。

    Linux内核版本在20(二十)年后达到了3版。
    也许你应该从Linus那里学习谦逊

    那么最大的变化是什么?

    什么也没有。绝对什么也没有。当然,我们有通常的三分之二的驱动程序
    更改,以及许多随机修复,但关键是3.0版
    只是关于重新编号,我们*根本没有*做KDE-4或
    Gnome-3。没有中断,没有特殊可怕的新功能,根本没有
    像那样。多年来我们一直在进行基于时间的发布
    现在,这与功能无关。如果你想为
    重新编号找借口,你真的应该看看基于时间的那一个(“20年”)
    反而。

    所以没有ABI更改,没有API更改,没有神奇的新功能——只是
    稳定的缓慢进步。除了驱动程序更改(而且
    大部分确实是驱动程序更新),我们还进行了一些不错的VFS清理,
    各种VM修复,一些不错的初始ARM整合(耶!)以及
    总的来说,这应该是一个相当正常的发布周期。这
    合并窗口比平时短几天,但如果最终
    这意味着一个较小的版本和一个稳定可靠的3.0版本,那就太好了
    好的。绝对没有理由追求传统的“.0”
    许多项目都存在的问题。

    2011年11月6日 12:46

  33. Burner

    Firefox多年来一直在走下坡路。我现在已经转向Chrome了

    2011年12月15日 22:23

  34. BJE

    FF 9.0.1

    在openSuSE 12.1上

    机器有Phenom X6,16 GB RAM——FF 9.0.1挂起——无法启动,无响应,什么也没有

    另一台机器有openSuSE 11.3,英特尔P4 2.4 GHz,2.0 GB RAM,FF 4.0——响应缓慢,但不会冻结——加载与上面相同的标签页

    我们在这里看到问题了吗?强大的机器在FF 9.0.1上冻结

    配置较低的机器缓慢运行……有很多扩展程序……只是很慢…….

    Mozilla在发生这种情况时的建议:“如果Firefox长时间保持打开状态,可能会挂起。要解决此问题,请重新启动Firefox。”

    在6核机器上长时间运行——2小时

    在单核P4机器上长时间运行——5个月以上

    嗯,这是什么样的解决方案?

    你们在雷德蒙德喝了太多咖啡了吗?

    说真的?要解决问题,请关闭应用程序并重新启动?

    再说一次——真的吗?这是解决方案?重新启动FF?

    真的吗?这是解决方案?

    2012年1月21日 20:36

  35. AC

    我从第一个版本开始就使用Firefox,它仍然是我最喜欢的网络浏览器,但需要向Opera学习,它很可能需要从头开始重写,这是FF的开发人员不愿意承认的,与Linus对待Linux不同,他承认它们很臃肿。FF太臃肿了。在使用v3.5-v3.6时,RAM使用量几乎可以接受且稳定,在发布时我只有1GB DDR RAM,当时认为它不稳定,因为它确实会崩溃或挂起且无响应,但现在我有2GB DDR2 RAM,似乎可以接受。我的新系统有16GB DDR RAM,这将被我使用的软件占用,与大多数人声称如此多的RAM不会被使用相反,程序员远远落后于硬件制造商,因此他们仍然不知道如何制作高效的软件,这对他们来说太难了,当我第一次在1997年开始在家中使用计算机时,一些IT人员告诉我软件工程师落后于硬件技术30年,想想现在是什么情况,可能已经190年了……

    尽管如此,我仍然喜欢FF。不过,当甚至没有打开任何网站时,它至少使用600MB RAM,这有点糟糕!我使用Memory Fox来帮助解决RAM泄漏问题,并且FF的内存问题尚未得到解决!无论是否使用附加组件,我都会获得相同的体验,尝试过所有方法并排除了系统上的其他附加组件或软件,我经常尝试安装Windows的原始版本,并添加干净的FF安装和配置文件,但仍然没有改进。我想在3-6年后我需要128GB DDR4 RAM。

    2012年3月3日 13:00

本文的评论已关闭。