Google、asm.jsの最適化はChromeでも進めていることを表明、ただし一般的な最適化として
MozillaがJavaScriptの実行速度を劇的に改善する新しい方法として提案したのがasm.jsです。
asm.jsはJavaScriptのサブセットと型アノテーションを定義し、事前最適化コンパイラで徹底的に最適化するとともに実行時チェックやガベージコレクションなどの実行速度の足を引っ張る処理を止めてしまうなどの手法で、JavaScriptを高速で実行できるようにします。詳しくは、記事「asm.js:コンパイラのための低レベルかつ高度に最適化可能なJavaScriptのサブセット」をお読みください。
asm.jsは6月末リリース予定のFirerfox 22で対応される予定です。
そしていまのところasm.js対応を表明しているのはMozillaのFirefoxだけですが、5月15日に米国で開催されたGoogle I/Oでは、Chromeでもasm.jsへの最適化が進められていることが示されました。
asm.jsの実行速度を従来の2.4倍に改善
Chromeエンジニアリング担当VPのLinus Upson氏は、Google I/Oの基調講演で次のように話しています。
V8チームはJavaScriptの新しいユースケースについても最適化を推し進めている。Mozillaは最近、非常にうまい方法でC/C++コードをasm.jsと呼ばれるJavaScriptのサブセットにコンパイルする方法を発表した。これでC/C++のコードをWebで走らせることができるようになり、とても注目されている。
このJavaScriptは人間ではなくコンパイラが生成したものであるため、これまでの最適化とはかなり勝手が違っている。しかしこの1カ月でV8チームはasm.jsの実行速度をさまざまな最適化手法を駆使して2.4倍にも高めることができた。
しかしこれはV8がasm.jsに対応するというわけではなく、あくまで一般的な最適化を推し進めた結果だと、ロシアのエンジニアVyacheslav Egorov氏が書いています(Egorov氏は元V8のエンジニアのようです)。
make no mistake: V8's asm.js perf improvements shown at I/O are coming from generic optimizations, without reliance on "use asm"
— Vyacheslav Egorovさん (@mraleph) 2013年5月15日
asm.jsの事前最適化コンパイラは「use asm;」命令によって起動されることになっています。V8ではそこまで完全にasm.jsに対応してはいないけれども、一般的なJavaScript最適化として可能な範囲で実行速度の改善を続けているようです。
あわせて読みたい
Appcelerator、企業向けのモバイル開発環境「Appcelerator Platform」を発表。開発ツールからテスト、BaaS、ログ解析まで包括。Oracleもサポートへ
≪前の記事
マイクロソフトが唱える新戦略「デバイス+サービス戦略」