谷歌浏览器即将推出“标签页冻结”功能
谷歌正致力于为 Chrome 浏览器开发一项名为“标签页冻结”的新功能。这项功能的主要作用是暂停(冻结)用户当前未使用的标签页。 这项改进有望显著降低 CPU 使用率,提升浏览器运行速度,并延长笔记本电脑或平板电脑的电池续航时间。
标签页过多引发的挑战
通常情况下,如果用户仅打开一个标签页,Chrome 浏览器只需渲染一个网页。然而,大多数用户都会同时打开多个标签页。即使这些标签页处于非活动状态,每一个打开的标签页都包含一个正在运行的网页,占用系统内存。此外,网页中的脚本和其他活动内容也会在后台持续运行,消耗 CPU 资源。
在某些情况下,这种机制是必要的。例如,它可以保证标签页在后台播放音频,或者及时更新页面内容。当用户切换回这些标签页时,无需等待重新加载,可以实现即时访问。
然而,这种机制也会带来问题。当用户打开大量标签页,或者少数包含复杂内容的标签页时,它们会消耗大量的系统资源,占用内存,消耗 CPU 周期,导致 Chrome 浏览器响应速度变慢,甚至缩短电池续航时间。为了解决这些问题,Chrome 工程师推出了“标签页丢弃”和“标签页冻结”两项功能。 这两项功能虽然相关,但它们在不同的情况下发挥作用。
“标签页丢弃”功能如何节约内存
“标签页丢弃”功能最早于 2015 年被引入 Chrome 浏览器。谷歌将其定义为一项“节约内存”的功能。简单来说,当计算机内存不足时,Chrome 会自动“丢弃”用户长时间未使用的标签页的内容。 当前正在交互的标签页不会被丢弃,但长时间处于后台的标签页会被优先处理。
当标签页被“丢弃”时,其内容会从系统内存中清除,但其状态会被保存到磁盘。 浏览器界面不会有任何变化,标签页仍然会显示在标签栏中,看起来与平常无异。然而,当用户单击并切换到该标签页时,Chrome 会需要一些时间来快速重新加载页面,让用户回到之前的浏览状态。
这种轻微的延迟是 Chrome 浏览器仅在系统内存极度紧张时才丢弃标签页的原因。 尽可能使用 RAM 进行缓存会更好,但自动丢弃标签页并快速重新加载,仍然比强迫用户手动添加书签和关闭标签页要更有效。
当标签页被丢弃时,其进程实际上会从 Chrome 内置的任务管理器中消失。用户将不再看到 Chrome 占用它的内存。 当用户再次点击它进行重新加载时,该进程会重新启动。
“标签页冻结”功能如何节省 CPU 和电池
“标签页冻结”功能与“标签页丢弃”功能有所不同。 当一个标签页被冻结时,它的内容仍然保留在系统内存中,但是该标签页的内容将被“冻结”。 标签页中的网页将不再使用 CPU,也不会在后台执行任何操作。 例如,假设用户打开了一个非常消耗资源的网页,并且该网页持续运行脚本。经过一段时间后,Chrome 会自动“冻结”该标签页并停止运行操作,直到用户再次与该标签页进行交互。 以上只是初步概念,谷歌可能会在未来更详细地解释这项功能的工作原理。
“标签页冻结”目前是一项实验性功能。 它已经内置于当前稳定版本的 Chrome 77 中,但需要手动启动。 在即将推出的 Chrome 79 的 Canary 版本中,Chrome 将能够像自动丢弃标签页一样自动冻结标签页。
在 Chrome Canary 版本中,用户可以在地址栏输入 chrome://flags 并搜索“Tab Freeze”来使用“标签页冻结”功能。 启用此选项后,Chrome 会在“符合条件”的标签页在后台运行五分钟后自动冻结它们。 根据用户选择的选项,Chrome 可以让它们每 15 分钟冻结,或者解冻 10 秒钟,这足以与服务器同步数据或完成一些必要的工作。 显然,谷歌正在测试哪种方案是最佳的。
尽管“标签页冻结”功能尚处于实验阶段,但几乎可以肯定它很快就会在 Chrome 的稳定版本中出现,至少会以某种形式出现。 TechDows 网站曾报道过 Chrome Canary 版本中的这项功能。
如何体验“标签页冻结”(和丢弃)功能
如果用户想了解这些功能的工作原理,当前稳定版的 Chrome 浏览器允许用户同时使用这两项功能。 用户只需在 Chrome 的地址栏输入 chrome://discards 并按回车键。
用户会看到一个诊断页面,其中列出了所有打开的标签页以及它们是否可以被冻结或丢弃。 在页面的右侧,用户会看到操作链接,可以“冻结”或“放弃”每个标签页。
用户可以自行测试,以观察不同操作的效果。例如,如果用户启动 YouTube 并开始播放视频,点击该标签页的“冻结”按钮会暂停视频播放,但不会从任务管理器中删除 YouTube 标签页的内容。点击“放弃”按钮会暂停视频播放,并从内存中删除标签页的内容。如果用户打开 Chrome 的任务管理器,会看到该标签页消失。 点击“加载”按钮会把标签页的内容重新加载到内存中。
为什么“丢弃”和“冻结”功能如此重要
总之,当系统内存不足时,Chrome 会丢弃用户不使用的标签页,以释放内存空间。 当用户点击标签页时,Chrome 会在后台默默地重新加载它们,用户可能会注意到页面加载时有短暂的延迟。 当用户拥有足够内存时,Chrome 无需丢弃标签页,而是将内存用作缓存,而不是让其空闲,这样可以加快浏览速度。
即使用户拥有充足的内存,Chrome 也会快速冻结用户不与之交互的标签页,以节省 CPU 资源和电池电量,从而可能让 Chrome 和系统上的其他应用程序响应更快。 Chrome 仍然会将这些标签页保存在内存中。这样,当用户通过切换重新激活冻结的标签页时,标签页中的网页可以尽快恢复使用。
如果 Chrome 需要释放内存,它可能会丢弃冻结的标签页。但是,用户不能冻结被丢弃的标签页:因为它们已经被从内存中删除,实际上处于关闭状态,无法在后台执行任何操作。
随着即将推出的 Microsoft Edge 版本也将基于 Chromium 内核,谷歌在 Chrome 上做出的改进也将使 Windows 10 的默认浏览器变得更好。 预计 Edge 的未来版本也会自动启用标签页冻结功能。