WebKitがWebAssemblyを完全にサポートした – InfoQ Japan

Home » 04研究開発・生産・物流 » WebKitがWebAssemblyを完全にサポートした – InfoQ Japan
04研究開発・生産・物流, モジュール化 コメントはまだありません



AppleのSafariはWebAssemblyを完全にサポートした。これは将来のECMAScriptモジュールとスレッドの統合準備も含んでいる。

AppleはWebKitにWebAssemblyの完全なサポートを追加し、Safariが他言語で書かれたコードを実行できるよう拡張している。WebKitはWebAssemblyをx86とx64、ARM 64プラットフォームでサポートする。

WebAssemblyはブラウザ内でJavaScriptとして使えるので、WebKitはそれを動作させるために既存のJavaScriptの機能を再利用している。たとえば、WebAssembly.Instance APIはブラウザですでにサポートされているECMAScriptモジュールを使って実装されている。それが要望されている機能となったときの、JavaScriptモジュールとの統合手段を準備している。また、WebAssemblyのWebKitでの実装はスレッドのサポートを追加するときの準備のためにスレッドセーフとなっている。この機能はChromeもロードマップに持っている。

ツールがコードをWebAssemblyにコンパイルするとき、さまざまなパフォーマンスの最適化をすでにやっている。しかしWebKitはもう2つ最適化の層を追加する。即時バイトコード構築(BBQ)と最適化された機械語ジェネレータ(OMG)だ。両者ともB3 JITをベースにしている。これはWebKitがJavaScriptコードを調整するために使っているものだ。AppleのエンジニアによるとBBQはOMGより4倍速いが、生じたコードは2倍遅い。BBQはすばやくコードを実行するために使い、OMGはホットコードに使う。後者は速度が重要なコード部分へより深い最適化を実行する。

WebAssemblyはSafari Technology Previewのリリース32で利用できる。ChromeとFirefoxは3月にWebAssemblyの完全なサポートを追加した。Microsoft Edgeは全プラットフォームのプレビューモードにWebAssemblyがある。デスクトップとモバイル、Xbox、複合現実向けだ。






コメントを残す