BT

最新技術を追い求めるデベロッパのための情報コミュニティ

寄稿

Topics

地域を選ぶ

InfoQ ホームページ ニュース Firefoxバージョン58でWebAssemblyが10倍高速化

Firefoxバージョン58でWebAssemblyが10倍高速化

原文(投稿日:2018/01/23)へのリンク

読者の皆様へ:お客様のご要望に応じて、重要なものを逃すことなく、ノイズを低減できる一連の機能を開発しました。興味のあるトピックを選択して、電子メールと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

Adoption Stage
Style
 
 

この記事に星をつける

おすすめ度
スタイル

BT