微軟開源新一代瀏覽器的JavaScript引擎核心代碼

jopen 9年前發布 | 13K 次閱讀 JavaScript

近日,微軟宣布開源 Chakra 的核心組件。Chakra 是微軟新一代瀏覽器 Microsoft Edge 的 JavaScript 引擎。相關代碼將于 2016 年 1 月上傳到微軟的 GitHub 賬號,項目名稱為 ChakraCore,遵循 MIT 許可協議。

Chakra 是微軟 2008 年新創建的一個 JavaScript 引擎,其基本構建原則是要具備現代 Web 應用所需要的性能特性,并能非常容易地應用于各種不斷出現的場景。也就是說,Chakra 需要能夠快速啟動和運行,提供卓越的用戶體驗,并充分發揮底層硬件的潛能。下面是 Chakra 的基本架構:

為了實現上述目標,Chakra 采用一種獨特的多層管道架構,包含一個解釋器、一個多層架構的后臺 JIT 編譯器和一個可以并發和局部回收的標記-清除垃圾收集器。

自 Chakra 創建以來,JavaScript 已經從一種主要用于 Web 瀏覽器的語言,成長為一種支持商店應用、服務器端應用、云服務、NoSQL 數據庫、游戲引擎、前端工具和 IoT 的語言。期間,微軟一直在不斷改進和優化 Chakra,使它不僅可以很好地適應這些場景,而且還能在所有這些場景中提供卓越的體驗。這意味著,除了吞吐能力外,Chakra 還必須具備本地互操作性、良好的擴展性和在有限資源環境中執行代碼時限制資源占用的能力。Chakra 的解釋器在可移植性方面發揮了重要作用。

現在,在 Microsoft Edge 瀏覽器之外,Chakra 還應用于通用 Windows 應用、Azure DocumentDBCortanaOutlook.comTypeScript(做過專門優化)。微軟還使 Node.js 可以使用 Windows 10 上的 Chakra,從而使開發人員可以在新 IoT 平臺 Windows 10 IoT Core 上使用 Node.js。

隨著 Windows 10 的發布,Chakra 不僅在 Microsoft Edge 中提供了更好的 JavaScript 性能,而且在其他瀏覽器提供商所擁有的基準測試中,性能也有大幅提升,如下圖所示:

此外,Chakra 還支持大部分 ECMAScript 2015(即 ES6)特性,并支持部分 ECMAScript 提案特性,如 Async FunctionsSIMD。它還支持 asm.js,其團隊在 WebAssembly 及其相關基礎設施的發展中發揮了重要作用。

ChakraCore 是一個全功能、自包含的 JavaScript 虛擬機,可以嵌入衍生產品及用于諸如 NoSQL 數據庫、生產力軟件、游戲引擎這類需要腳本語言的應用程序。如下圖所示,與 Chakra 相比,ChakraCore 主要有兩點不同:一是未將私有綁定暴露給瀏覽器和通用 Windows 平臺;二是用一組新的現代化診斷 API 取代了基于 COM 的診斷 API。

雖然將在 1 月份發布的 ChakraCore 版本僅限于 Windows,但微軟承諾會將其帶到其他平臺。感興趣的讀者可以繼續關注,在 1 月份正式發布的時候,微軟會提供更多細節。

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