Google 的 Chrome 浏览器具有界面简洁、速度快、扩展多等优点,已经占据了桌面市场的半壁江山强(Net Market Share9 月份 Chrome 占比为 54.4%,第二的 IE 为 25.5%)。但是实现这些优点是有代价的,其中最大的问题就是吃内存,用过 Chrome 的用户应该知道,有时候简直到了有点丧心病狂的地步。
不过这个最大的缺点有望在 2 个月内得到显著改善了。根据 Google Chrome V8 JavaScript 引擎团队发布的引擎优化评测报告,优化后的 Chrome 最高可将两种内存的消耗量分别降低 50% 与 40% 以上。而采用这一优化技术的 Chrome 55 稳定版预计将在今年 12 月份推出。
V8 是 Chrome 的 JavScript 引擎,用于编译和执行 JavaScript 源代码,处理对象内存分配,并对不再使用的对象进行回收。虽然 JavaScript 并不是网页的全部,但作为浏览器中最常用的客户端脚本,基本上所有主流网站都会使用它。而为了提高速度,JS 的执行是会占用大量内存的。对于内存紧张的设备来说,Chrome 优先考虑加载速度的做法有时候会导致内存崩溃,导致标签页的挂起等。于是 V8 团队开始针对这种情况进行一些权衡,通过各种优化减少了堆内存和区内存(Zone Memory)的使用。在纽约时报、Hackernews、Reddit、YouTube 等典型网站的对比测试表明,在堆内存方面 Chrome 55 比目前的 Chrome 53 平均内存消耗率下降了 50%(纽约时报更是高达 65%),在区内存方面平均也有 40% 的下降。
堆内存消耗对比
Zone Memory 消耗对比
虽然 Chrome 有望大幅降低内存消耗是个好事情,但是对用户来说未必就是好消息。因为只要设备有空余的内存,其他 app 和网站就会想办法加载新功能去利用这一公共资源。而且内存消耗减少必然也会令浏览器的加载速度有所放缓。所以,这主要是对内存紧张的设备进行的优化。而在接下来的时间里,V8 团队还会针对内存少于 1G 的低端设备做进一步的优化。