微軟的全新瀏覽器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瀏覽器提升圖形、布局和其他子系統的性能,而這還只是個開始。
新聞熱點
疑難解答