本帖最后由 hanguokai 于 2016-2-1 17:10 编辑
英文原文:Smarter garbage collection for smoother browsing and less memory usage
作者:Seth Thompson
为确保在 Chrome 中浏览页面时具有流畅、快捷的体验,必须释放未使用的内存。我们对 V8 JavaScript 引擎中的垃圾回收器进行了优化,能够尽快回收内存,从而缩短主执行线程的暂停时间。但是,如果暂停的时机不对,即使是短暂的暂停也会导致卡顿,并阻止诸如点击、滚动或动画帧等重要事件。为使垃圾回收影响不那么明显,我们在 V8(自 M41 开始)中集成了Blink 的任务计划程序,这样,不仅暂停时间很短,而且能以智能方式将暂停安排在浏览器处于空闲状态的合适时间内发生。通过识别完全处于非活动状态的页面(例如后台标签)这一新功能,V8 还可以一次性释放更大的内存区块。 这样浏览时的卡顿现象减少了,整体内存使用也降低了。
安排在其他空闲期间(蓝色)执行垃圾回收任务(红色)
更智能的垃圾回收可以减少滞后和卡顿现象,从而能更流畅地播放 3D 动画和玩游戏。V8 中集成的最新任务计划程序能够更一致地为游戏和呈现提供更高的帧速率。对于 Chrome 41 和 Chrome 46 之间的版本,我们的 OORT Online 3D 基准测试(用于测量 WebGL 图形渲染流畅度)的得分提高达 33%,快接近现代桌面的最高分数 10,000 分。
当浏览器处于空闲状态达几分钟或更长时间时,新系统的内存使用量降低特别明显。例如,对于 Chrome 45 和之前版本,如果 Gmail 标签处于未使用状态达 2.5 分钟,内存消耗可降低达 45%!
除了为用户提供更流畅、更快速的浏览体验,这些更改还让开发者能够以更强大的应用和更出色的图形挑战 Chrome 的极限。请密切关注 V8 的更多优化功能,并查阅我们对垃圾回收时机的深入分析。有关更多详细信息,请访问新的 V8 博客。
Blog链接 |