上個月我們分享了 在博客上關於 Mozilla,Fastly,Intel和Red Hat合作開發的新聞 製造技術 WebAssembly (如果您想了解更多有關該新聞的信息,可以查閱該新聞。 此鏈接) 現在 那條消息過了幾週 W3C聯盟已宣布該技術 WebAssembly 它已成為推薦的標準。
對於那些不熟悉WebAssembly的人 他們應該知道 這提供了一個中間件 普及 與瀏覽器無關的低級運行應用程序 已編譯 來自各種編程語言。 WebAssembly被定位為用於構建高性能Web應用程序的最有前途和可移植的跨瀏覽器技術。
Web程序集e可用於解決需要高性能的任務例如,視頻編碼,聲音處理,3D圖形和操作,遊戲開發,密碼運算,數學計算以及編程語言的可移植實現的創建。
WebAssembly 看起來很像Asm.js,但不同之處在於它是未綁定到JavaScript的二進制格式。 WebAssembly不需要使用垃圾收集器,因為使用了顯式的內存管理。
特色 使用 WAS 的應用程序的執行模型我正在沙箱環境中啟動 與主系統隔離,並使用基於容量管理的安全機制來對每個資源(文件,目錄,套接字,系統調用等)進行操作
通過為WebAssembly啟用JIT,您可以達到接近本機代碼的性能水平。 WebAssembly的主要任務之一是提供可移植性,行為的可預測性以及在不同平台上執行代碼的身份。
近日, WebAssembly也正在作為通用平台發展 在任何基礎架構,操作系統和設備上安全運行代碼,而不僅限於瀏覽器。
W3C具有標準化的三個規範 與WebAssembly相關:
- WebAssembly核心-定義為低級虛擬機,它緊密模擬其運行的許多微處理器的功能。 通過編譯或即時解釋,WebAssembly引擎幾乎可以以本機平台的編譯代碼速度運行。
資源 .wasm 類似於文件 .class的 從某種意義上講,Java包含靜態數據和對該靜態數據進行操作的代碼段。 與Java不同,WebAssembly通常是作為其他編程語言(例如C / C ++和Rust)的編譯目標而產生的。 - WebAssembly Web API: 定義基於Promise機制的編程接口,用於請求和執行“ .wasm”資源。 WebAssembly資源格式經過優化,可以在不等待文件完全加載的情況下開始執行,從而提高了Web應用程序的響應速度。
- WebAssembly JavaScript界面: 提供了與JavaScript集成的API。 允許您獲取值並將參數傳遞給WebAssembly函數。 WebAssembly的執行與JavaScript安全模型相對應,並且與主機的所有交互都以與執行JavaScript代碼類似的方式執行。
將來計劃進行準備 WebAssembly功能的規範,例如:
- 具有共享內存和對原子內存的訪問的多線程。
- 基於SIMD的向量運算,允許並行執行循環。
- 引用類型,用於直接引用WebAssembly代碼中的對象。
- 能夠在不花費額外空間的情況下調用函數。
- 與ECMAScript模塊集成:能夠從JavaScript加載WebAssembly代碼作為符合ECMAScript 6規範的模塊。
- 使用垃圾收集器的方式。
- 調試接口。
- WASI(Web組件系統接口):用於與操作系統直接交互的API(用於文件,套接字等的POSIX API)。
如果您想了解更多信息,可以查閱原始說明。 在下面的鏈接中。