掲載日時: 2008-08-25 10:57

モジラ、「Firefox 3.1」でJavaScript実行を大幅に高速化

UPDATEモジラは、「Firefox 3.1」で、JavaScriptの実行を大幅に高速化する「TraceMonkey」機能を統合すると述べた。

著者 : 文:Stephen Shankland(CNET News.com) 翻訳校正:佐藤卓、高森郁哉

URL : https://japan.zdnet.com/article/20379198/

UPDATE Mozillaは米国時間8月22日、「Firefox」の次期バージョン「Firefox 3.1」について、JavaScriptで書かれたプログラムの実行速度を大幅に高める「TraceMonkey」と呼ばれる機能を統合することで、「Gmail」などさまざまなウェブベースのアプリケーションをより高速に実行できるようになると述べた。

 JavaScriptは、ウェブページに見栄えのする効果や柔軟性を加える目的で長年にわたり非常に広く使われてきたが、近年ではリッチインターネットアプリケーションにとって配管の役割も担うようになってきた。だが、JavaScriptはパフォーマンスの低さが足かせになっていたため、ウェブベースのアプリケーションがPC上で直接動く「ネイティブな」ソフトウェアと同程度に敏感に動作するのは困難な場合が多かった。そのため、Webアプリケーションを作るプログラマーたちは往々にして、Adobe Systemsの「Flash」や「Flex」といった他の選択肢に乗り換えてきた。

 そして今、Mozillaは、JavaScriptに有利になるよう勢力バランスを変えたいと望んでいる。

 「TraceMonkeyは、ネイティブなコードのスピードをJavaScriptにもたらすためのプロジェクトだ」と、Mozillaでエンジニアリング担当の暫定バイスプレジデントを務めるMike Shaver氏は述べ、JavaScriptベンチ「SunSpider」によるテストでは、JavaScriptのパフォーマンスが「FireFox 3.0」の約2倍になったと付け加えた。また、TraceMonkeyを搭載すれば、多くの基本タスクの速度が向上するだけでなく、画像の編集や3D画像の描画をJavaScriptで実行できるようになると、Shaver氏は説明した。

 TraceMonkeyは、8月21日にMozillaのプログラマーたちがFirefoxの開発者バージョンの最新版に実装しており、Firefox 3.1初のベータ版になる可能性が高い次回リリースのテスト版で公開される予定だと、Shaver氏は述べた。Firefox 3.1は2008年末が最終版の期限となっているが、Mozillaは、必要であればスケジュールを少し遅らせることも検討している。

 JavaScriptの実行速度が向上すれば、より高速なウェブサーフィンが可能になる。そのため必然的に、Microsoftの「Internet Explorer」、MozillaのFirefox、Appleの「Safari」、および「Opera」の間で再び繰り広げられているブラウザ戦争において、JavaScriptの実行速度が重要な要素となっている。「われわれも他の陣営と同様、市場が再び競争的になっていることは認識している」とShaver氏は語った。

 TraceMonkeyに携わっているプログラマーでJavaScript発明者のBrendan Eich氏は、JavaScriptベンチ「SunSpider」で速度が83%向上したと8月22日のブログに記している。とはいえ、この速度テストは人工的なベンチマークであり、Yahooの電子メールソフトウェア「Zimbra」のような実際のJavaScriptアプリケーションにおける結果を正確に反映しているわけではない。

 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氏は、「このようにしたのは、幅広いフィードバックを求めているからだ」と述べた。

そのほかの新機能

 Shaver氏によると、Firefox 3.1にはほかにもいくつか大きな変更が加えられるという。

 その1つは、JavaScriptプログラムによるスレッドのサポートだ。スレッドは命令シーケンスであり、最近のマルチコアプロセッサはマルチスレッドを同時に実行できる。したがって、スレッドをサポートすることによって、JavaScriptプログラムがバックグラウンドで複数のタスクをより効率的に実行できるようになる、とShaver氏は説明した。

 もう1つは、「Ogg Vorbis」フォーマットでエンコードされた音楽ファイルと「Ogg Theora」フォーマットでエンコードされた動画ファイルを再生できる機能の搭載だ。この2つのフォーマットは「MP3」などの競合フォーマットに比べて普及率やサポートの点で劣るが、専有技術につきものの特許使用料などの縛りがないため、Firefoxのようなオープンソースソフトウェアに追加できる、とShaver氏は語った。

 Mozillaはまた、「Firefox 2」のユーザーが現行バージョンの3.0に早めに移行するよう、より積極的な奨励策を始める予定だ。約2週間後に、Firefox 2のユーザーに対してバージョン3.0へのアップグレードを促すメッセージの表示を開始する予定だ、とShaver氏は述べた。

 現在、PCにインストールされたFirefox 2が、Mozillaのサーバにアクセスしてアップデートがあるかどうかを確認しても、サーバ側はバージョン3.0へ移行するよう促すメッセージを返さないため、ユーザーは手作業でアップデートを行う必要がある。

 「2週間後にそうした措置を取ることを検討している。ユーザーの過半数はまだFirefox 2を使っているからだ」とShaver氏は説明した。

この記事は海外CNET Networks発のニュースをシーネットネットワークスジャパン編集部が日本向けに編集したものです。海外CNET Networksの記事へ

ZDNET Japanは、Ziff Davisからのライセンスに基づき株式会社4Xが運営しています。
ZDNET Japan is operated by 4X Corp under license from Ziff Davis.

Copyright © 2026 4X Corp, Inc. All rights reserved. No reproduction or republication without written permission.