微软的全新浏览器Edge虽然还在开发之中,但是其性能表现已经相当惊艳,很多项目都可以完爆Chrome。这是怎么做到的呢?除了微软自己的努力之外,Intel也贡献很大,微软特意撰文分享了一些小秘密。

Edge/IE浏览器的JavaScript引擎叫做“Chakra”,2012年起Intel就开始不断贡献其在Web运行时开发、JIT代码生成方面的经验(当时主要是Windows 8.1),最近更是为Edge献出了大规模的代码库,尤其是在图形与性能优化方面。

顺带一提,Intel还是WebKit、Blink、Gecko等开源浏览器引擎的主要贡献者。

微软表示,Intel直接参与了Chakra JIT编译器的改进,包括更好的指令选取和调度,还帮助微软消除了大量冗余指令,减轻了指令过载,总而减小了整体代码体积、改进了特定环境下的性能。

尤其是在Windows 10、Edge平台上,Intel更是与微软紧密合作,帮助部署单指令多数据SIMD(已列入ECMAScript标准化脚本语言提议),可利用特定的SIMD硬件指令(如今几乎任何架构都支持它),提升数据级别的并行执行。

SIMD指令集可以同时操作多个值,因此在处理矢量数据的似乎后,代码执行会更快。

单指令多数据SIMD:一个操作即可搞定两个矢量数据的加法

单指令单数据SISD:需要四个操作

SIMD在视频处理、多媒体、游戏等领域应用广泛,再配合asm.js,能够帮助JavaScript内容以近乎原生的速度运行。

要想体验这个功能,可以在Edge浏览器中打开“about:flags”页面,勾选“Enabel asm.js”,不过注意目前该功能仅支持x86、x64架构。

想看效果的话,可以访问SIMD Mandelbrot DEMO:

http://peterjensen.github.io/simd-asm-2/mandelbrot-asm-2.html

无SIMD

开启SIMD

此外,Intel还在积极帮助Edge浏览器提升图形、布局和其他子系统的性能,而这还只是个开始。

推荐内容