Firefox 54:史上最棒的一次改版!首次採用多内容处理程序,效率快、记忆体


2020-06-07


Firefox 54:史上最棒的一次改版!首次採用多内容处理程序,效率快、记忆体

过去两年,几乎 Chrome、Edge 两家浏览器的口水战少不了,每次讲到比执行效能、耗电量等议题,几乎都会「顺便」将 Firefox 放在一起,而且每次 Firefox 总是只有陪榜的份。不过,现在排序可能要重新洗牌了。前几天 Firefox 正式发表了 Firefox 54 版并开放下载,官方表示速度将比 Chrome、Edge、Safari 等浏览器都快。

Firefox 54 版是第一个支援多内容处理程序(multiple content processes)的 Firefox 版本,并兼顾效能及资源管理。这个版本为什幺重要,以下是官方部落格的说明:

记忆体对浏览器的影响

你的浏览器使用的记忆体造成的影响,不只有你浏览网页时的体验,同时也有使用其他 App 的体验。如果浏览器佔用太多记忆体,电脑就没有足够空间执行其他程式,因此你会发现开启某些程式时出现累格,甚至慢到无法开启。

反过来说,如果一个浏览器分配到的记忆体太少,那幺打开网页时,会造成每个网页速度都太慢,卡卡的。所谓的「Goldilocks 原则」建议浏览器佔用记忆体要「刚好」,选择适中的量,只要记忆体足够快速执行浏览网页,也不要佔用你的电脑资源。

Firefox 54:史上最棒的一次改版!首次採用多内容处理程序,效率快、记忆体

电脑记忆体与执行速度的关係。

但是,说起来简单,做起来谈何容易?目前所有浏览器几乎都面临相同的问题。

程式的构成要素

一个应用程式的构成要素有两个:程序(processes)与执行绪(threads)。

当你执行一个程式,会开始执行程序,伴随很多执行绪的执行,这些执行绪都分享相同的工作记忆体。程序通常会给予执行绪不同的优先权,掌握不同类型的工作。

例如,用来绘出应用程式介面的执行绪通常会有比较高的优先权,因为你在执行一个应用程式时,是先看到介面才能操作。其他较低优先权的执行绪,这时就先抓着资料在背景等,等高优先权的执行绪做完再执行。你可以打开 Windows 工作管理员,看到目前电脑正执行的程序有哪些(macOS 叫活动监视器 Activity Monitor)。

Firefox 54:史上最棒的一次改版!首次採用多内容处理程序,效率快、记忆体

有时,一个程序并不是启动一个执行绪,而是启动另外一个程序。可以预想这样会用到更多记忆体以及电脑效能。因此大多数程式都执行单一程序,但会使用多个执行绪。

不过,浏览器不像「大多数」程式。

Firefox 54:史上最棒的一次改版!首次採用多内容处理程序,效率快、记忆体

我们可以看到,上图左边的音乐播放器、文字编辑器、影像编辑器等 3 个,都是单一个程序(黑色虚线框框),里面有很多执行绪(白色线条)在跑。右边的浏览器,则是一个浏览器打开很多分页,每个分页都是一个程序,里面又有无数执行绪。

现代网路,为什幺需要多程序浏览器

比较过去 Firefox 于 2004 年发表时的 Web,那时所谓的 Web 可能只是一些文件放在网路上,但是随着时间发展,现在 Web 已变成一个平台,不只用来显示静态文件,还可以提供互动程式功能,像是 EMAIL、文书处理、社群服务这些 Web 应用程式,你都会在浏览器上实现。

而随着 Web 新时代来临,使用者也期待 Firefox 或其他浏览器,能够像 Windows 或 Mac 系统可同时启动不同应用程式,快速打开多个 Web 应用程式。不过对浏览器厂商来说,很难做到。

解法是什幺?解法就是浏览器必须要学习用作业系统的方式运作,使用多程序来执行不同的 Web 应用程式。

随着多程序架构,你会发现,当你在一个分页观看一个网页时,这个分页不幸当掉,这时切换到另一个分页,那个分页的内容你还是可以点选,并不会一个分页当掉导致整个浏览器全当。

过去,Mozilla 工程师虽然了解多程序架构的可行性,但把 Firefox 改为多程序架构却会影响到单程序架构运作的 Firefox 附加元件(Add-On),所以 Firefox 迟迟不敢改为多程序架构。相对的,Chrome 在设计的时候就採用多程序架构。

为什幺 Chrome 会过热 Firefox 却不会

最新释出的 Firefox 54 和 Chrome 一样採用多处理程序,但 Chrome 吃掉太多电脑记忆体也是有名的,因此, Firefox 54 希望避免这个问题。

Firefox 54 採用折衷办法。Chrome 如果开启 10 个分页,就会开启 10 个程序,吃掉 10 个程序记忆体,这是导致它耗用那幺多记忆体的原因。而 Firefox 54 是针对打开的分页,最多只开启 4 个程序。当你打开第 5 个分页,就会使用前面 4 个程序的执行绪,控制消耗的记忆体。

Firefox 54:史上最棒的一次改版!首次採用多内容处理程序,效率快、记忆体

为什幺是 4 个?Firefox 团队表示,因为这是他们评估对 Firefox 使用者较恰当的数量。一般 8GB 记忆体的电脑,用了 4 个程序的情况下,还有足够的资源跑其他程式。

此外,如果电脑 RAM 超过 8GB,或许想让 Firefox 启用更多内容处理程序,Firefox 表示现阶段可在网址列输入 about:config 后,调整 dom.ipc.processCount 设定的数目。他们也会在后续版本直接将这个修改数量放在设定,让一般使用者自己调整。



上一篇:
下一篇: