これらすべてが重要なのは、これまでにないほど大量になっているブラウザの処理を主に担うのがJavaScriptだからだ。ウェブページのユーザーインターフェースは高度化が進んでおり、その多くがJavaScriptで記述されている。そして新しい標準によって、ブラウザによるバックグラウンド処理タスクの実行も可能になるため、よりいっそう高度なウェブページやウェブアプリケーションの可能性が開けている。
そのような経緯から、Mozillaの「JaegerMonkey」と呼ばれるプロジェクトが発足した。
Mozillaのプログラマーたちは、比較的高レベルのJavaScript命令を解釈する代わりに、よく使用されるいくつかのタスクを、プロセッサのネイティブ言語で動作するようにコンパイルされた高速ソフトウェアに変換することにより、FirefoxのJavaScriptエンジンがコードをより高速に処理できるだろうという結論に達した。問題は、このトレースプロセスが作動しない場合や停止した場合だという。JaegerMonkeyのプログラマーDavid Anderson氏が2月26日のブログ記事に記した。
「トレースが動作している時は、一般的なアプローチに比べて処理が速いということが分かった。しかしトレースが停止すると、旧式のインタープリタに戻らなければならない。その時点でJavaScriptの実行速度は2007年から2008年当時(つまり『Firefox 3.5』『Safari 4』、Chromeなどの前)の水準になる。それは許容できないので、修正する必要がある」(Anderson氏)
JaegerMonkeyは、2つのものの長所を取り入れるように設計されている。Anderson氏は「トレースによる超高速を続けるとともに、トレースが停止してフォールバックしたときでもまだ非常に高速というようにしてはどうだろうか」と問う。「われわれの新しいプロジェクトJaegerMonkey(またはJägerMonkey)は、まさにこのことを実現しようとしている。まだ始めたばかりだが、すでに見込みのある成果が得られている」(Anderson氏)
JaegerMonkeyのプログラマーDavid Mandelin氏の記述によれば、MozillaはJavaScriptエンジンNitroに新しい要素を加えることに決めたという。
「われわれはAppleのオープンソースのJavaScript JIT(ジャストインタイムコンパイラ)であるNitroからアセンブラをインポートすることにした。以前調べたときに、シンプルで速いことが分かった(実際に測定したところ、正規表現のコンパイルが非常に速かった)。また、オープンソースであり、C++で適切に設計されているため、目的に最適だ」。Mandelin氏はブログ記事にこう記している。
CNET Japanの記事を毎朝メールでまとめ読み(無料)
Copilot + PCならではのAI機能にくわえ
HP独自のAI機能がPCに変革をもたらす
ドコモビジネス×海外発スタートアップ
共創で生まれた“使える”人流解析とは
働くあなたの心身コンディションを見守る
最新スマートウオッチが整える日常へ