新聞中心
導(dǎo)讀:Emscripten C/C++到JavaScript項目利用來自LLVM的后端構(gòu)建起更具速度與針對性優(yōu)勢的編譯方案。

成都網(wǎng)站建設(shè)哪家好,找創(chuàng)新互聯(lián)公司!專注于網(wǎng)頁設(shè)計、網(wǎng)站建設(shè)、微信開發(fā)、微信小程序、集團企業(yè)網(wǎng)站建設(shè)等服務(wù)項目。核心團隊均擁有互聯(lián)網(wǎng)行業(yè)多年經(jīng)驗,服務(wù)眾多知名企業(yè)客戶;涵蓋的客戶類型包括:OPP膠袋等眾多領(lǐng)域,積累了大量豐富的經(jīng)驗,同時也獲得了客戶的一致夸獎!
[[112424]]
在當初剛剛公布時,Emsripten聽起來完全像是個沖勁十足的技術(shù)笑談:一款能夠?qū)/C++代碼轉(zhuǎn)換成Asm.js的編譯器,其處理成果能夠通過Web瀏覽器或者在Node.js框架中作為JavaScript子集加以運行。
然而事實證明這一切并非笑談。Emscripten與Asm.js(后者最初為Mozilla公司發(fā)起的一個研究項目)已經(jīng)自誕生之日起逐步發(fā)展,并最終取得了令人矚目的重大進展。***公布的技術(shù)成果是,Emscripten新版本利用來自LLVM的編譯器核心取代了原有機制——這項編譯器技術(shù)框架原本主要用于C/C++環(huán)境,但在理論上也能夠支持多種其它語言。
根據(jù)Emscripten項目的開發(fā)者們所言,轉(zhuǎn)而選擇LLVM給Emscripten帶來了多項全新優(yōu)勢。首先,整個編譯過程更加快捷——“通常能夠帶來四倍甚至更高的轉(zhuǎn)換效率提升,”他們指出,而且轉(zhuǎn)換所需要的內(nèi)存容量也有所降低。此次更替還“避免了原有編譯器偶爾出現(xiàn)的不可預(yù)知的惡性拖慢現(xiàn)象。”更重要的是,LLVM后端允許Emscripten與LLVM自身以更為緊密的方式實現(xiàn)對接。
使用LLVM的惟一缺點在于,其必須經(jīng)過有針對性的重新編譯才能與Emscripten順利協(xié)作。LLVM的處理成果只能為我們提供上述優(yōu)勢當中的一部分,除非具備其它選項、否則很難將其充分發(fā)揮。
Asm.js仍然被普遍視為一種實驗性技術(shù),目前能夠直接為其提供支持的也只有Mozilla火狐這一款瀏覽器。不過它的實際表現(xiàn)仍然令人印象深刻。就在最近,Asm.js成功將虛幻游戲引擎移植到了JavaScript環(huán)境之下,從而在無需任何插件或者非原生代碼配合的情況下使該平臺能夠直接運行在瀏覽器當中。
谷歌目前尚未最終決定是否為Asm.js提供全面支持,不過Chrome瀏覽器已經(jīng)確定將向由其生成的JavaScript應(yīng)用敞開懷抱——雖然速度提升水平還遠無法與火狐相比肩。谷歌的計劃似乎是將Dart語言作為瀏覽器平臺的近原生代碼執(zhí)行速度提升方案,不過JavaScript的普及度以及靈活性至少就目前來看仍具備極為顯著的優(yōu)勢、Dart在短時間內(nèi)恐怕很難取得競爭優(yōu)勢。
英文原文:http://www.infoworld.com/t/javascript/new-compiler-cranks-javascript-native-code-240923
網(wǎng)頁標題:新型編譯器將原生代碼轉(zhuǎn)換為JavaScript
網(wǎng)頁URL:http://www.dlmjj.cn/article/dhjehhc.html


咨詢
建站咨詢
