SharedArrayBuffer
SharedArrayBuffer は、Worker とメインスレッドがゼロコピーで同一メモリ領域を共有できるようにする API である。Spectre への対策としてクロスオリジン分離(COOP+COEP)が必要である。
目的
パフォーマンスのために Worker 間で大きなメモリをゼロコピー共有しつつ、Spectre のサイドチャネルを防ぐクロスオリジン分離を要求する。
メカニズム
new SharedArrayBuffer(size) で共有メモリを生成し、postMessage(transferable)で渡す。Atomics がアトミック操作を提供する。Spectre 以降は crossOriginIsolated が必須である(COOP same-origin + COEP require-corp)。
ユースケース
- Worker とのゼロコピー共有メモリ
- WASM のマルチスレッド
- ハイパフォーマンス計算