我们知道很多同学都可能使用MacBook本来工作学习,除了Mac自带的Safari浏览器外,大家使用最多的可能还是谷歌的Chrome浏览器(不过虫虫最喜欢的是火狐)。那么如何最大程度保持使用时长(续航)是一个一个移动设备(笔记本电脑)所要面临的一个挑战。最近的官方博客揭示了最Chrome新版本中的续航优化细节,值得每一个开发者学习借鉴。
在MacBook Pro的测试中,对于MacBook Pro 13英寸的2022 M2版本的硬件条件下可以实现使用Chrome正常浏览器17小时,或者用其观看油管视频 18小时。如果开启Chrome节能模式则可以多增加半小时续航时间。
iframe微调
在实际中许多站点iframe只会存在几秒钟。新版本中对iframe的创建微调了GC(内存回收)和内存压缩试探算法。通过算法的调节,实现了减少短时内存使用和回收的波动,使内存分配使用更加平稳,可以从使用曲线图中明显看到差异,从图上也可以看到随着内存波动的减少,电量的消耗也更平稳,更少。
计时器
Javascript计时器是在Web伊始就开始引入。从那时起,Web开发人员可以访问更高效的API来实现相同的结果。但是Javascript计时器仍然占网页功耗的很大部分。新版中,调整了Chrome Javascript计时器的触发方式,以减少CPU唤醒的频率。
结果显示,在不再需要时取消内部计时器,可以大大减少CPU被唤醒的次数。
简化数据结构
新版本中针对使用相同密钥频繁访问的数据结构,优化了它们的访问模式。
页面重渲染
通过使用bot 模拟真实世界的网站上导航,并确定了不影响屏幕像素的文档对象模型 (DOM) 更改模式。根据模拟取得的数据,新版本中修改了检测算法实现尽早检测到对应的元素并绕过不必要的样式、布局、绘画、光栅和gpu步骤。Chrome UI也用同样的策略进行了性能优化。
总结
Chrome开发团队通过一系列的技术细节上的调整和改善,优化了其在MacBook上的续航表现,一些细节我们可以在类似的Web项目中借鉴使用。同时Chrom团队还放出了其Mac 续航测基准测试套件(source.chromium.org/chromium/chromium/src/+/main:tools/mac/power/),可以供大家自己动手测试和学习。