【レポート】

Velocity 2010 - Firefox、Chrome、IE9、三者三様の高速化への取り組み

1 JavaScriptでネイティブコードに迫る - Firefox

Yoichi Yamashita  [2010/07/12]

WebブラウザのHTML5の実装が進み、今年後半にはGoogleのChrome OSを搭載したネットブックが登場する。ブラウザはコンテンツを表示するためのソフトからアプリケーションを実行するための環境として大きな進化を遂げている。そこで問われるのは実行速度だ。O'ReillyのWebパフォーマンスに関するカンファレンス「Velocity 2010」ではMozilla、Google、Microsoftがそれぞれが20分ずつの時間でスピードに対する最新の取り組みを説明した。

GoogleのNative ClientデモにJavaScriptで対抗!?

MozillaのChris Blizzard氏は、時間のほとんどをJavaScriptエンジンの説明に費やした。Chrome、Safari、OperaがBaseline JITを用いているのに対し、現行のFirefoxのTraceMonkeyはUC Irvineで開発されたトレーシング手法Trace Treesを採用したJITコンパイラを搭載している。特定クラスに最適化したネイティブコードを生成することでJavaScriptを高速に実行する。

Baseline JIT、Tracing、MSVC-02のFFT(高速フーリエ変換)のパフォーマンスを比較。TracingはMSVC-02に肩を並べる

Tracingが生成するコードは非常に速く、MSVC-02に迫る。ただし、このパフォーマンスを常に発揮できるわけではなく、実際のケースではトレースできずにインタープリタに戻されて立ち往生することが多い。一方Baseline JITはTraceMonkeyのような高度な最適化はできないが、結果にばらつきがない。一長一短である。

そこでFirefox 4のJavaScriptエンジン「JagerMonkey」では、オープンソースのJavaScript JITであるNitroからアセンブラをインポートし、Baseline JITとTracingのメリットを共存させる。「次世代のWebアプリで、われわれはネイティブコードのスピードを実現する」とBlizzard氏は、その性能に自信を示す。

同氏は、GoogleのNative ClientのDarkroomデモをJavaScriptで構築した成果を見せた。Googleのデモが15fps程度であるのに対してJavaScriptデモは7fps程度だと言うが、動作はスムースで、こうした成果から「これまでネイティブコードが担っていたものを、JavaScriptで実現できると実感し始めている」と語った。

    関連記事

    関連したタグ

    新着記事

    特設サイトの情報

    求人情報

    人気記事

    一覧

    イチオシ記事

    新着記事

    特別企画

    一覧

    転職ノウハウ

    あなたの仕事適性診断

    4つの診断で、自分の適性を見つめなおそう!

    Heroes File ~挑戦者たち~

    働くこと・挑戦し続けることへの思いを綴ったインタビュー

    はじめての転職診断

    あなたにピッタリのアドバイスを読むことができます。

    転職Q&A

    転職に必要な情報が収集できます

    スカウト転職する

    企業からアプローチのメッセージが届きます。