WebAssembly 2.0 標準草案發布 

W3C揭幕 最近通過一個帖子 新規範草案 標準化的準備代碼 WebAssembly 2.0 和相關的 API 能夠創建可跨瀏覽器和硬件平台移植的高性能應用程序。

對於那些剛接觸 WebAssembly 的人,你應該知道 這提供了一個通用中間件, 低電平和 獨立於瀏覽器,運行已編譯的應用程序 來自各種編程語言。 通過將 JIT 用於 WebAssembly,您可以獲得接近原生代碼的性能水平。

關於 WebAssembly

WebAssembly 可用於在瀏覽器中執行高性能任務,例如視頻編碼、音頻處理、3D 和圖形操作、遊戲開發、密碼運算和數學計算,通過執行用 C/C++ 等編譯語言編寫的代碼。

WebAssembly 的主要任務之一是在不同平台上提供可移植性、行為可預測性和代碼執行身份。 最近,WebAssembly 也被推廣為在任何基礎設施、操作系統和設備上安全執行代碼的通用平台,不僅限於瀏覽器。

關於 WebAssembly 2.0 草案

自 WebAssembly 以來所做的部分更改是 WebAssembly 2.0 的最終提案,包括固定寬度 SIMD、大容量內存操作、引用類型、JavaScript BigInt 對 WebAssembly i64 的支持、對多個返回值的支持以及可變的導入/導出全局變量。

W3C 發布了三個 WebAssembly 2.0 規範草案:

  1. Web 組裝核心: 描述了用於運行中間 WebAssembly 代碼的低級虛擬機。 與 WebAssembly 相關的資源採用“.wasm”格式,類似於 Java“.class”文件,其中包含靜態數據和用於處理該數據的代碼段。
  2. WebAssembly JavaScript界面​​: 提供與 JavaScript 集成的 API。 允許您獲取值並將參數傳遞給 WebAssembly 函數。 WebAssembly 執行遵循 JavaScript 安全模型,與主機的所有交互都與運行 JavaScript 代碼類似。
  3. WebAssembly Web API: 定義了一個基於 Promise 機制的 API,用於請求和執行“.wasm”資源。 WebAssembly 資源格式經過優化,無需等待文件完全下載即可開始執行,從而提高了 Web 應用程序的響應能力。

WebAssembly 和 WebAssembly 2.0 的區別

另外,應該注意的是,WebAssembly 2.0 與標準的第一版相比有一些重要的變化:

  • v128 向量類型支持 以及相關的向量指令,允許您對多個數值並行執行操作(SIMD,單指令,多數據)。
  • 能夠導入和導出可變全局變量,它允許將值全局綁定為 C++ 中的堆棧指針。
  • 將 float 轉換為 int 的新指令,而不是在結果溢出時引發異常,而是返回最小或最大可能值(SIMD 需要)。
  • 擴展整數符號的說明 (增加保持符號和值的數字的位深度)。
  • 支持按塊和函數返回多個值 (以及將多個參數傳遞給函數)。
  • 實現 JavaScript 函數 BigInt64Array 和 BigUint64Array 在 JavaScript 類型 BigInt 和 64 位整數的 WebAssembly 表示之間進行轉換。
  • 支持引用類型 (funcref 和 externref)及其相關語句(select、ref.null、ref.func 和 ref.is_null)。
  • memory.copy、memory.fill、memory.init 和 data.drop 指令 在內存區域之間複製數據並刪除內存區域。
  • 直接訪問和修改表的說明 (table.set、table.get、table.size、table.grow)。
  • 能夠在一個模塊中創建、導入和導出多個表. 以批處理模式複制/填充表的函數(table.copy、table.init 和 elem.drop)。

最後,如果你有興趣了解更多,可以諮詢詳情 在下面的鏈接中。


發表您的評論

您的電子郵件地址將不會被發表。 必填字段標有 *

*

*

  1. 負責資料:AB Internet Networks 2008 SL
  2. 數據用途:控制垃圾郵件,註釋管理。
  3. 合法性:您的同意
  4. 數據通訊:除非有法律義務,否則不會將數據傳達給第三方。
  5. 數據存儲:Occentus Networks(EU)託管的數據庫
  6. 權利:您可以隨時限制,恢復和刪除您的信息。