微軟的全新瀏覽器Edge雖然還在開發(fā)之中,但是其性能表現(xiàn)已經(jīng)相當(dāng)驚艷,很多項(xiàng)目都可以完爆Chrome。這是怎么做到的呢?除了微軟自己的努力之外,Intel也貢獻(xiàn)很大,微軟特意撰文分享了一些小秘密。
Edge/IE瀏覽器的JavaScript引擎叫做“Chakra”,2012年起Intel就開始不斷貢獻(xiàn)其在Web運(yùn)行時(shí)開發(fā)、JIT代碼生成方面的經(jīng)驗(yàn)(當(dāng)時(shí)主要是Windows 8.1),最近更是為Edge獻(xiàn)出了大規(guī)模的代碼庫(kù),尤其是在圖形與性能優(yōu)化方面。
順帶一提,Intel還是WebKit、Blink、Gecko等開源瀏覽器引擎的主要貢獻(xiàn)者。
微軟表示,Intel直接參與了Chakra JIT編譯器的改進(jìn),包括更好的指令選取和調(diào)度,還幫助微軟消除了大量冗余指令,減輕了指令過(guò)載,總而減小了整體代碼體積、改進(jìn)了特定環(huán)境下的性能。
尤其是在Windows 10、Edge平臺(tái)上,Intel更是與微軟緊密合作,幫助部署單指令多數(shù)據(jù)SIMD(已列入ECMAScript標(biāo)準(zhǔn)化腳本語(yǔ)言提議),可利用特定的SIMD硬件指令(如今幾乎任何架構(gòu)都支持它),提升數(shù)據(jù)級(jí)別的并行執(zhí)行。
SIMD指令集可以同時(shí)操作多個(gè)值,因此在處理矢量數(shù)據(jù)的似乎后,代碼執(zhí)行會(huì)更快。

單指令多數(shù)據(jù)SIMD:一個(gè)操作即可搞定兩個(gè)矢量數(shù)據(jù)的加法

單指令單數(shù)據(jù)SISD:需要四個(gè)操作
SIMD在視頻處理、多媒體、游戲等領(lǐng)域應(yīng)用廣泛,再配合asm.js,能夠幫助JavaScript內(nèi)容以近乎原生的速度運(yùn)行。
要想體驗(yàn)這個(gè)功能,可以在Edge瀏覽器中打開“about:flags”頁(yè)面,勾選“Enabel asm.js”,不過(guò)注意目前該功能僅支持x86、x64架構(gòu)。

想看效果的話,可以訪問(wèn)SIMD Mandelbrot DEMO:
http://peterjensen.github.io/simd-asm-2/mandelbrot-asm-2.html

無(wú)SIMD

開啟SIMD
此外,Intel還在積極幫助Edge瀏覽器提升圖形、布局和其他子系統(tǒng)的性能,而這還只是個(gè)開始。
新聞熱點(diǎn)
疑難解答