Duetto:更快更智能的C++/JavaScript代碼轉換器

jopen 12年前發布 | 7K 次閱讀 Duetto

        Duetto 是一個編譯器,可以將 C++ 程序編譯為二進制代碼和 Javascript 代碼,這允許開發者使用單一的 C++ 代碼庫編寫高性能的分布式 Client/Server 應用。 

Duetto:更快更智能的C++/JavaScript代碼轉換器

        Duetto 的作用 

        為了使 Web 應用的執行速度接近于本地應用,科技巨頭開始探索使用底層語言開發 Web 應用的可能性。Mozilla 帶來了 asm.js,這是一個 JavaScript 子集,可以被用來作為一個底層的、高效的編譯器目標語言,也就是說開發者可以將本地應用編譯為該語言或 JavaScript,以實現更高的性能。 

        目前比較知名的解決方案是 Emscripten,這是一個基于 LLVM 的編譯器,可以將任何通過 LLVM 前端(比如 C/C++ Clang)生成的 LLVMIR 中間碼編譯成 JavaScript。 

        Duetto 類似于 Emscripten,同樣基于 LLVM。但 Duetto 的開發人員表示,Duetto 比 Emscripten 更快、更智能。 

        更智能的 Emscripten 替代品 

        Emscripten 通過模擬一個完整的字節尋址地址空間來處理 C++ 代碼,盡管這是一個很好的解決方案,但是不太理想。因為 JavaScript 不是基于字節尋址地址模式的,而是基于對象尋址模式——所有內存被包含在一個對象中。而 C++ 沒有什么不同。 

        Duetto 的做法是——集成了 clang 和 LLVM 工具鏈,能夠將 C++ 面向對象的結構映射為本地 JavaScript 對象。事實證明,在現代 JavaScript 引擎上,訪問對象比訪問數組要更快。Duetto 開發人員給出了以下基準測試結果: 

Duetto:更快更智能的C++/JavaScript代碼轉換器

        目前狀態 

        Duetto 開發人員表示,目前該編譯器的后端已經開發完備,已經可以將 C++ 應用程序編譯為 Web 應用,尤其是游戲應用。 

        但是 Duetto 前端還不太完善,目前 Duetto 開發人員的首要任務是改進 bug 報告,使用戶的移植體驗更加平滑。 

        Duetto 開發人員稱,未來 6 個月內,Duetto 將會作為開源項目正式發布。 

        項目官網http://leaningtech.com/duetto/

來自: www.iteye.com
 本文由用戶 jopen 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!