これらすべてが重要なのは、これまでにないほど大量になっているブラウザの処理を主に担うのが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の記事を毎朝メールでまとめ読み(無料)
パナソニックのV2H蓄電システムで創る
エコなのに快適な未来の住宅環境
ものづくりの革新と社会課題の解決
ニコンが描く「人と機械が共創する社会」
企業や自治体、教育機関で再び注目を集める
身近なメタバース活用を実現する
OMO戦略や小売DXの実現へ
顧客満足度を高めるデータ活用5つの打ち手