All Articles

V8 Blog | Chrome welcomes Speedometer 2.0! 2018-01-24

1. 原文

Chrome welcomes Speedometer 2.0!

2. 摘要翻译

自从2014年Speedometer 1.0发布以来,Blink和V8团队一直都在使用这个benchmark作为真实世界众多流行的JS框架的映射进行性能评估,并获得了显著的性能提升。经验证流行网站上的页面加载速度的提升确实也提高了这个benchmark的得分。

JS语言也在急速进化,添加了诸如ES2015等众多新的语言特性。这也导致了大量框架以及Speedometer 1.0显得越来越过时。因此再使用Speedometer 1.0作为优化指标的话,将会显著提升遇到性能检验指标和真实使用的语法模板不一致的情况的风险。

Blink和V8团队都非常欢迎最近release的升级版Speedometer 2.0 Benchmark。在针对符合当前时代的框架、转译器、ES2015语言特性进行调整之后,该benchmark重新成为主流的JS优化指标。Speedometer 2.0将加入真实世界性能衡量指标工具,成为其中的一份子。

Chrome’s mileage so far

Blink和V8团队已经使用该benchmark完成了一次提升测试,来反应该benchmark对我们有多重要并继续我们聚焦在真实世界性能提升的旅程。比对2017年7月release的Chrome 60和最新的Chrome 64,在一台mid-2016 Macbook Pro (4 core, 16GB RAM)机器上跑完benchmark之后总分提升了21%。

接下来让我们聚焦Speedometer 2.0中的单个条目。藉由Function.prototype.bind的性能提升,React runtime性能提升了一倍。Vanilla-ES2015、AngularJS、Preact以及VueJS藉由speeding up the JSON parsing和其他诸多性能问题修复提升了19%–42%的性能。 …

较之Speedometer 1.0最大的改动应该是final score的计算。之前版本的总分平均值的计算方式只对速度最慢的条目有意义。当我们查看所有条目耗时总量的时候,EmberJS-Debug版本的耗时是最快框架的将近35倍。因此提升EmberJS-Debug版本的性能看上去最有潜力。

Speedometer 2.0使用几何平均数(geometric mean)来计算final score,这种计算方式对各框架来说更公平。来看之前提到的最快框架Preact最近的16.5%的性能提升,如果我们因为这个框架表现优异(总耗时很少)就忽略16.5%性能提升对这个框架来说的意义是很不公平的。

我们正在通过提升Speedometer 2.0 benchmark评分的方式来进一步提升性能,并最终回馈到真实世界的WEB环境。

EOF

Published 2018/3/21

Some tech & personal blog posts