wasm3 的第一個版本,一個快速的 WebAssembly 解釋器

可用的 第一版 瓦斯姆3,一個非常快速的 WebAssembly 中間代碼解釋器,主要用於在沒有 WebAssembly JIT 實現、沒有足夠內存來運行 JIT 或無法創建實現 JIT 所需的可執行內存頁面的微控制器和平台上運行 WebAssembly 應用程序。 專案程式碼是用C語言寫的 分發者 在麻省理工學院的許可下。

Wasm3 透過 測試 相容於WebAssembly 1.0規範,可用於運行許多WASI應用程序,提供的效能僅比JIT引擎低4-5倍(升空, 起重機),比本機程式碼執行低 11.5 倍。 與其他 WebAssembly 解譯器相比(水管, 生活, wasm-微運行時),wasm3 速度快了 15.8 倍。

要運行 wasm3,您需要 64Kb 程式碼記憶體和 10Kb RAM,這允許您使用該專案在 WebAssembly 上運行編譯的應用程式 微控制器,如 Arduino MKR*、Arduino Due、Particle Photon、ESP8266、ESP32、Air602 (W600)、nRF52、nRF51 Blue Pill (STM32F103C8T6)、MXChip AZ3166 (EMWAZ3166)、
Maix (K210)、HiFive1 (E310)、Fomu (ICE40UP5K) 和 ATmega1284,以及基於 x86、x64、ARM、MIPS、RISC-V 和 Xtensa 架構的主機板和電腦。 支援的作業系統包括Linux(包括基於OpenWRT的路由器)、Windows、macOS、Android和iOS。 也可以將 wasm3 編譯為 WebAssembly 中間程式碼,以在瀏覽器中執行解釋器或巢狀執行(自架)。

透過在口譯員中使用技術來實現高性能 梅公元機 (M3),它將字節碼前向翻譯為更有效率的偽機器代碼產生操作,以減少字節碼解碼開銷,並將基於堆疊的虛擬機執行模型轉換為更有效率的基於暫存器的方法。 M3 中的操作是 C 函數,其參數是可以對應到 CPU 暫存器的虛擬機器暫存器。 頻繁出現的最佳化操作序列被轉換為匯總操作。

此外,還可以注意到 研究成果 傳播
Web 上的 WebAssembly。 在根據 Alexa 評級分析了 948 個最受歡迎的網站後,研究人員發現 1639 個網站(0.17%)使用了 WebAssembly,即每 1 個網站就有 600 個。 這些網站上總共下載了 1950 個 WebAssembly 模組,其中 150 個是唯一的。 在考慮 WebAssembly 的使用範圍時,得出了令人失望的結論 - 在超過 50% 的情況下,WebAssembly 被用於惡意目的,例如挖掘加密貨幣(55.7%)和隱藏惡意腳本代碼(0.2%) 。 WebAssembly 的合法用途包括運行庫 (38.8%)、創建遊戲 (3.5%) 和運行自訂非 JavaScript 程式碼 (0.9%)。 在 14.9% 的情況下,WebAssembly 用於分析使用者識別(指紋)的環境。

wasm3 的第一個版本,一個快速的 WebAssembly 解釋器

來源: opennet.ru

添加評論