(原标题:Chrome吃内存太夸张!解决Chrome占内存硬伤)
我们知道 Chrome 是非常出色的浏览器,无论从性能还是功能的角度来看,都是如此。但是 Chrome 在内存占用方面的表现,就很令人头疼了!常常听到有朋友抱怨,想要上网找找素材,不一会儿发现 Chrome 已经将 PS 要用的内存给挤爆了!这种魔幻的剧情,在 Chrome 用户群中屡次上演,怎么办?
▲ Chrome 的机制非常吃内存
Chrome 之所以吃内存,是因为 Chrome 使用了多进程机制,每一个 Chrome 的标签页以及每一个扩展,都是独立的进程。这样机制的好处在于,单个进程的崩溃不影响整个浏览器,保持了稳定,但也带来了吃内存的问题。
在 Chrome 中,就算你没有切换到某个标签页,该标签页的进程也会持续渲染网页中的各种元素、脚本,占据不小的资源,内存就被这样 N 个标签消耗殆尽。
知道了 Chrome 吃内存的原理,解决起来就有门路了。这就来推荐几个减少 Chrome 内存占用的方案,从机制上解决 Chrome 占内存的硬伤!
OneTab
下载地址:https://www.one-tab.com/
这是 Chrome 上的一款扩展程序。OneTab 的作用在于,可以将 Chrome 当前开启的标签页,转换成为列表。这些被 OneTab 转换掉成为列表的标签页,实际上是在内存中被清理掉了,但 OneTab 保存了这些标签页的记录。当你想要重新浏览这些标签的时候,可以通过 OneTab 重新开启,网页也就回来了。
官方宣称可以减少 Chrome 高达 95% 的内存占用
由于 OneTab 的原理实际上是清理掉标签页的进程、并在列表中保留标签页的浏览记录,因此它对 Chrome 的内存释放的立竿见影的。根据 OneTab 官方的说法,它甚至可以减少 Chrome 高达 95% 的内存占用!当然,这和你开启的标签页数量有关,开启的标签页越多,能用 OneTab 减少的内存占用也就越多。
The Great Suspender
下载地址:https://chrome.google.com/webstore/detail/klbibkeccnjlkjkiokjodocebajanakg
这是一款老牌的 Chrome 扩展程序。它的作用在于,可以暂时冻结 Chrome 的标签页,让标签页进程占用的资源得以释放出来。从这方面来说,其实 The Great Suspender 的原理和 OneTab 是有一定相似之处的。
安装了 The Great Suspender 后,就会弹出相应的设置页面,可以在其中设置多久之后冻结标签页,例如可以设置为 1 小时,那么后台标签页如果 1 小时不活动,就会被冻结。此外,还可以设定不要冻结固定的、正在播放的、输入框有文字以及使用中的标签,可谓是非常细致了。
可以设置一定时间后,自动冻结后台标签页
一个标签被 The Great Suspender 冻结后,是需要重新加载的,这和 OneTab 中将标签转为列表后需要重新加载的道理是一样的。而 The Great Suspender 可以将之前标签的内容缓存到硬盘,重新加载不需要网络连接,而且还可以回到之前的浏览位置,非常方便。
可以设置一定时间后,自动冻结后台标签页
The Great Suspender 的效果非常明显,看看下面的对比,可见 The Great Suspender 的确可以让 Chrome 减少很多内存占用。
省内存效果还是很明显的
使用 Edge 浏览器
如果你觉得 Chrome 的内存占用太大,但又不想通过这些工具对标签页动手脚,那么还可以考虑一下 Edge 浏览器。Edge 浏览器已经换用了 Chromium 内核,而且兼容 Chrome 的扩展程序,并可以导入 Chrome 的书签、浏览记录、密码等资料。从体验上来看,其实 Chrome 用户是可以无缝过渡到 Edge 浏览器的。
而和 Chrome 相比,Edge 浏览器是更加省内存的。原因在于,在 Windows 10 2004 中,微软带来了 SegmentHeap 这一特性,可以让 Edge 浏览器的内存占用下降 27% 之巨。而到目前为止,Chrome 是明确表示不支持该特性的,因此 Edge 在内存占用上,相比 Chrome 存在明显优势。
Chrome 认为 SegmentHeap 会带来跑分下降,因此暂不支持
当然,SegmentHeap 也并非全是好处,它会一定程度加重 CPU 的负担。但现在 CPU 的性能早已经过剩,在六核八核随处走的当下,这项技术还是比较合理的。如果你内存实在不堪重负,Edge 要比 Chrome 更值得选择。
总结
简单来说,要降低 Chrome 的内存占用,最常见的思路就是通过冻结 Chrome 标签的进程,让占用的资源释放出来,待到有需要的时候再重新加载标签。通过这个方法,可以大大减少 Chrome 的内存占用量,不过也会加重 CPU 和硬盘的负担,体验更多网页加载过程,可谓有得有失。希望 Chrome 日后也能像 Edge 那样,跟进 SegmentHeap 特性,带来更合理的内存占用吧。