2016-05-28

WebAssembly と Google Chrome 51

Google Chrome のバージョンが 51 になりました [1]。Google Chrome のデザインは、クラシック テーマを使用していたのですが、Linux 版ではアップデート後に色が変わってしまいました。まあ、これも慣れです。

さて、バージョン 51 で思い出すのが WebAssembly です [2]。WebAssembly とは、クロスプラットフォームな Web 上で使用できるバイトコードの定義です。言い換えるならば、WebAssembly とは Web のための仮想 CPU を定義することと言えます [3]

この WebAssembly は、有り難いことに主要なウェブブラウザで利用できるようにブラウザベンザーが協力して開発を進めているようです。Google Chrome では Google Chrome Canary のビルド 51 から WebAssembly が試験的に利用できるようになりましたが、残念ながら Linux 版の Chrome Canary は提供されていませんでした。しかし、ようやく Google Chrome 安定版のバージョン 51 がリリースされたことで、Linux でも試すことができるようになったはずなので、早速試してみました。

Octane - The JavaScript benchmark

WebAssembly が効率的なバイトコードになるように開発されることで恩恵を受けるのが、JavaScript の低水準レベルでのサブセットである asm.js です。そこで、まずは現状の Javascript エンジンについてベンチマークを取っておきます。ベンチマークには Google の Octane [4] を使用しました。

動作環境は次の通りです。

  • PC: HP Stream 11-r016TU
  • OS: Fedora 24 (x86_64, Beta)
  • Google Chrome バージョン 51.0.2704.63 (64-bit)

なお、スコアの結果にはばらつきがありますので、 Octane を 5 回連続実施して一番高いスコアを残しています。

WebAssembly の有効化

Google Chrome のアドレスバーに chrome://flags/#enable-webassembly と入力します。

試験運用版 WebAssembly の行で「有効にする」をクリック後、画面下の「今すぐ再起動」をクリックして Google を再起動して機能を有効にします(右図)。

再びベンチマーク

再起動後、ふたたび 5 回連続して Octane によるベンチマークを実施し、最もスコアが高かった結果を残します。

 

まとめ

Octane の総合スコアでは、WebAssembly を有効にした場合の方が若干高くなっていますが、各項目を較べると、Regexp と SplayLatency の二項目を除き、似たりよったりです。今後もバージョンが上がる度に、なるべく環境を揃えて比較できるベンチマーク結果を蓄積していきたいと思います。Javascript をベンチマークするソフトウェアについても、経験が足りないのでいくつか評価していく予定です。


Default WebAssmbly
Enabled
change ratio
[%]
Richards 9193 9330 1.48
Deltablue 16437 16053 -2.36
Crypto 9620 9698 0.81
Raytrace 17020 16206 -4.90
EarleyBoyer 10895 10974 0.72
Regexp 867 1239 35.33
Splay 4849 4375 -10.28
SplayLatency 8933 10681 17.82
NavlerStokes 11913 11685 -1.93
pdf.js 3610 3462 -4.19
Mandreel 6063 6052 -0.18
MandreelLatency 12882 12717 -1.29
GB Emulator 15130 14618 -3.44
CodeLoad 3150 3164 0.44
Box2DWeb 10479 10210 -2.60
zlib 22673 22616 -0.25
Typescript 8140 7980 -1.99
TOTAL 8157 8271 1.39

参考サイト

  1. Googleの「Chrome 51」が安定版に、42件のセキュリティ問題を修正 - ITmedia エンタープライズ (2016/05/26)
  2. JavaScriptを補完してウェブを高速化する「WebAssembly」をChromeがついに実装したので実行速度を試してみた - GIGAZINE (2016/03/16)
  3. WebAssembly が 1 つのマイルストーンを達成しました: 複数ブラウザによる実験的なサポートがはじまりました | Mozilla Japan ブログ (2016/03/16)[原文
  4. Octane  |  Google Developers

 

ブログランキング・にほんブログ村へ
にほんブログ村

0 件のコメント: