高速 WebAssembly インタープリターである wasm3 の最初のリリース

利用可能 और देखें ワズム3非常に高速な WebAssembly 中間コード インタプリタで、主に WebAssembly の JIT 実装を持たない、JIT を実行するための十分なメモリがない、または JIT の実装に必要な実行可能メモリ ページを作成できないマイクロコントローラおよびプラットフォーム上で WebAssembly アプリケーションを実行する際に使用することを目的としています。 。 プロジェクトのコードは C で書かれており、 によって配布 MITライセンスの下で。

Wasm3 パス テスト WebAssembly 1.0 仕様と互換性があり、多くの WASI アプリケーションの実行に使用できますが、パフォーマンスは JIT エンジンの 4 ~ 5 分の XNUMX しか提供しません (降ろす, クレーンリフト)、ネイティブ コード実行よりも 11.5 倍低くなります。 他の WebAssembly インタープリターと比較した場合 (WAC, 生活, 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 (EMW3166) など、
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 件を分析した結果、WebAssembly が 0.17 サイト (1%) で使用されていることを発見しました。 600 サイトに 1950 つ。 合計 150 個の WebAssembly モジュールがサイトにダウンロードされ、そのうち 50 個が固有のものでした。 WebAssembly の使用範囲を検討すると、残念な結論が下されました。55.7% 以上のケースで、WebAssembly は、暗号通貨のマイニング (0.2%) や悪意のあるスクリプトのコードの隠蔽 (38.8%) など、悪意のある目的に使用されていました。 。 WebAssembly の正当な使用には、ライブラリの実行 (3.5%)、ゲームの作成 (0.9%)、JavaScript 以外のカスタム コードの実行 (14.9%) が含まれます。 ケースの XNUMX% では、ユーザー識別 (フィンガープリンティング) のための環境の分析に WebAssembly が使用されました。

高速 WebAssembly インタープリターである wasm3 の最初のリリース

出所: オープンネット.ru

コメントを追加します