モジラ、「Firefox 3.1」でJavaScript実行を大幅に高速化 - (page 2)

文:Stephen Shankland(CNET News.com) 翻訳校正:佐藤卓、高森郁哉2008年08月25日 10時57分

 TraceMonkeyの高速性は、動画や写真の編集にも表れている。コントラストや明るさの調整は、従来の700ミリ秒以上かから約100ミリ秒に短縮された。

 Shaver氏も、自分のブログでTraceMonkeyについて語っている

TraceMonkeyの詳細

 TraceMonkeyという名称は、現在Mozillaが採用しているJavaScriptインタプリタ「SpiderMonkey」と、カリフォルニア大学アーバイン校のAndreas Gal氏らが開発した「トレーシング」という手法に由来する。Shaver氏によると、Gal氏はTraceMonkeyの主任アーキテクトだという。

 TraceMonkeyは、ジャストインタイム(JIT)コンパイル方式を用いるJITコンパイラだ。JITコンパイルとは、人間が書いたプログラムをコンピュータが理解できる命令に変換するための技術の1種だ。

 コンピュータ上で稼働するソフトウェアの多くは、事前にコンパイルされた、いわゆるバイナリファイルだ。これに対して、JavaScriptはインタプリタ方式によって実行時に1行ずつ解釈されるため、処理に時間がかかる。Shaver氏は「インタプリタでできることは限界に近づきつつある」と述べた。

 だがJITコンパイラは、コードを読み込んだ時点(たとえば、ユーザーがウェブページを開き、ブラウザがJavaScriptのコードを見つけた時点)で、スクリプトを実行しながらバイナリファイルを生成する。

 ただし、TraceMonkeyは、ソフトウェアの中でも優先度の高い部分のみを集中して翻訳する。JavaScriptプログラムの実行状況を追跡して記録しながら、実行に時間のかかることが多い繰り返し処理(ループ)の部分を見つけ出すのだ。ソフトウェアが実際にループしている部分があれば、そのコンピュータが理解できるネイティブな命令コードにコンパイルする。

 これに対して、コンパイラの中にはプログラム全体を翻訳するものもある。そのためには、コードの処理過程でコンピュータがたどり得るすべての実行経路をマッピングし、最も重要な部分を見つけ出そうとするため、負荷のかかる処理となる。いっぽう、トレーシング手法では、実際のプログラム実行状況に基づいて判断するため、コンピュータを本当に占有している領域だけに集中させることが可能だ。

 Shaver氏は、「そのおかげで、プログラムの中で最も重要な部分に最適化のエネルギーを集中させることができる」と語った。

 こうした集中のおかげで、TraceMonkeyには大量のメモリや読み込みに時間のかかるプラグインを必要としない、とShaver氏は語る。この点はまた、Mozillaがブラウザ開発における重点目標の1つとして挙げているモバイル機器で使用する際にも有利な条件となる。

 しかし、ウェブベースのアプリケーションをよりよいものにするためには、まだまだやるべきことがたくさんある。Mozillaが次の重要項目と考えているのは、ウェブブラウザの中でウェブページ全体の描画と処理を受け持っているドキュメントオブジェクトモデル(DOM)要素だ。

 TraceMonkeyは現在、Firefox 3.1の開発者向けバージョンに組み込まれているが、デフォルトでは無効となっている。Shaver氏は、「このようにしたのは、幅広いフィードバックを求めているからだ」と述べた。

CNET Japanの記事を毎朝メールでまとめ読み(無料)

-PR-企画特集

このサイトでは、利用状況の把握や広告配信などのために、Cookieなどを使用してアクセスデータを取得・利用しています。 これ以降ページを遷移した場合、Cookieなどの設定や使用に同意したことになります。
Cookieなどの設定や使用の詳細、オプトアウトについては詳細をご覧ください。
[ 閉じる ]