コンテンツへスキップ
uencoder

WASM Memory

WASM Memoryは、WebAssemblyモジュールのリニアメモリオブジェクトで、連続したアドレス指定可能なバイト配列であり、WASMコードはここを通じてデータを読み書きする。

目的

WASMコードにCスタイルのポインタアドレッシングでヒープメモリを提供する。WASMとJSのデータ交換の架け橋である。

メカニズム

new WebAssembly.Memory({initial, maximum}) でリニアメモリを作成し、grow()で拡張、bufferプロパティでArrayBufferとして公開する。WASMコードはi32インデックスでメモリをアドレッシングする。SharedArrayBufferを基盤にすればスレッド化に対応する。

ユースケース

  • WASMのヒープメモリ
  • Cコードの移植
  • WASMとJSのデータ交換

関連ツール

References