読者の皆様へ:お客様のご要望に応じて、重要なものを逃すことなく、ノイズを低減できる一連の機能を開発しました。興味のあるトピックを選択して、電子メールとWeb通知を入手してください。
Firefox 58で、MozillaはWebAssembly用の2層コンパイルシステムを含んでおり、WASMコードを30~60MB/sの速度でパースしてコンパイルすることができる。これはネットワーク転送速度と同レベルである。ベンチマーク結果は、以前のバージョンのFirefoxに比べて10倍のスピードアップを示しており、Chromeより10倍以上高速である。
Mozilla Hacksのブログ記事で、Lin Clark氏はいくつかの性能値を示している。
デスクトップ上では、毎秒30~60メガバイトのWebAssemblyコードをコンパイルします。これは、ネットワークがパケットを配信するよりも高速です。
Firefox NightlyまたはBetaを使用している場合は、自分のデバイスで試してみることができます。平均的な性能のモバイルデバイスであっても、毎秒8メガバイトでコンパイルすることができます。これは、どのモバイルネットワークの平均ダウンロード速度よりも高速です。
第三者としてテストした人により、これらの結果の再現が報告されている。Redditユーザのa_potato_is_missingはLuke Wagnerのタンクコンパイルタイムテストの結果を報告した。結果は、Android Huawei P10 Lite端末上で、Firefox v57での1.7MB/sからFirefox v58での11.8 MB/sとなった。Windows 10のデスクトップテストでは、v57での9 MB/sからv58での52.8MB/sまでスピードアップが見られた。これと比較して、ChromeはAndroidで1MB/s、デスクトップでは4.1 MB/sと、遅れをとっている。
この速度向上は、JavaScript上で動作するWebAssemblyのパフォーマンスを超えている。これまでのレポートでは、FigmaによってWebAssemblyに切り替えることで読み込み時間が3倍改善されたことが示されたり、計算量が多いグラフィックプログラムの実行時間が30%向上したベンチマーク結果がHackernoonで公開された。
ブログ記事でLin Clark氏は、コンパイラが、コンパイルプロセスを2つの独立したプロセスに分割するために、どのようにFirefoxの並列アーキテクチャを利用しているかを詳しく説明している。まず、コードのベースライン版をネットワーク経由で取得すると、すぐに実行を開始し、コンパイルする。次に、バックグラウンドスレッドでコードを最適化されたバージョンにコンパイルする。最適化されたバージョンが完成すると、最適化されたバージョンで置き換えられ、コードがさらに高速に実行される。
この新たな改善により、WebAssemblyがネットワークから取得されるとすぐにコンパイルできるようになる。Yehuda Katz氏はWeb開発のためにこれがもたらす影響を強調した。
JavaScriptコードは、パースやコンパイルに時間が費やされるため、バイト単位で見ると、イメージよりもはるかに高価です。
ネットワークスピードと同等にwasmを解析してコンパイルすることが可能であり、JavaScriptコードよりもむしろイメージのように扱えます。
これは、ゲームチェンジャーだ!
Rate this Article
- Editor Review
- Chief Editor Action