标杆管理既必不可少,又是歪曲。麻烦的是,一旦有了一个基准,任何人都会关注它,那么趋势就是要调整高分,即使这会导致现实世界的表现更差。
谷歌的V8 JavaScript引擎通常是值得击败的,或者是试图击败的引擎。证明您的JavaScript引擎快速的标准方法是,根据Google生产的Octane基准运行它。
正如已经提到的,问题在于,一旦认真对待Octane,就开始被滥用以证明需要什么。这种情况有点像柴油机门丑闻,当时汽车制造商发现检测正在进行中,便改变了发动机的行为以减少排放。在这种情况下。虽然。这些引擎是JavaScript引擎,在大多数情况下,它们的行为会被永久修改以产生结果,但会牺牲现实性能。
辛烷值包含减少的实际代码,您可能已经假设这会使它更相关,但没有。如Chromium博客所述:
去年年初,V8团队开始通过检测Reddit,Twitter,Facebook和Wikipedia等流行网页的快照来以更高的保真度来衡量性能。该分析表明,虽然峰值性能使某些类型的大型Web应用程序受益,但浏览典型网站更多地取决于“启动”性能或开始运行脚本的速度。V8小组使用从这些实际性能数据中收集到的见解,进行了优化,从而根据CPU架构将Chrome 49和Chrome 56之间的平均页面负载提高了10-20%。
通过收集的数据,团队将新的基准-车速表-结合了更多的汽车参考标准。它包括来自常见Web框架(如React,Angular,Ember和jQuery)的代码块。重要的一点是,尽管Octane对启动优化没有响应,但Speedometer却做出了响应-这表明相对于Speedometer进行优化可能会产生实际的加速。作为结果:
鉴于跨网络浏览器的Octane评分处于稳定状态,以及对峰值性能的过度优化,我们决定淘汰该基准测试,作为对实际JavaScript性能的通用衡量标准。
我们得出什么结论?
首先是基准测试并非易事,而且从未如此简单。从实际工作负载中分离出来的既定基准会扭曲所做的优化。Google V8团队似乎有一个正确的主意:
展望未来,我们计划为出现在网络上的新脚本模式(包括现代库,框架和ES2015 +语言功能)提供更多的JavaScript性能改进。通过衡量现实世界的网站而不是传统的基准,我们可以更好地优化对用户和开发人员最重要的JavaScript模式。
甚至对于像JavaScript这样的复杂动态语言,也可以实现最大程度的优化令人惊讶。也许,如果我们努力工作,就不需要asm.js和网络汇编之类的创新了!
您可以使用以下浏览器在您的硬件上尝试使用Speedometer:Speedometer基准测试。
郑重声明:本文版权归原作者所有,转载文章仅为传播更多信息之目的,如作者信息标记有误,请第一时间联系我们修改或删除,多谢。