WebAssemblyのMemory64:速度とメモリのトレードオフ
2025-01-16

WebAssemblyは最近、64ビットポインタをサポートするMemory64を導入しました。しかし、驚くべきことに、Memory64はパフォーマンスの向上にはつながらず、ハードウェア、オペレーティングシステム、WebAssembly自体の設計上の制約により、32ビットモードよりも10%から100%以上遅くなる可能性があります。これは、32ビットモードではブラウザが4GBのメモリを予約できるため、境界チェックが不要になるためです。一方、Memory64は境界チェックが必要となり、計算オーバーヘッドが発生します。したがって、4GBを超えるメモリが必要ない限り、Memory64は最適な選択肢ではありません。ハードウェアとWebAssemblyの将来的な改善により、Memory64のパフォーマンスが向上する可能性があります。
開発