Googleは、「Chrome」に搭載しているJavaScriptエンジン「V8」向けに新しいJavaScriptコンパイラー「Sparkplug」をリリースした。ウェブ体験がはるかに高速になるとうたっており、プロジェクトのエンジニアチームによると、それには「トリック」があるという。
Sparkplugは、Googleが米国時間5月25日にリリースした「Chrome 91」に組み込まれている。Chrome 91では、セキュリティアップデートに加えて、強力なJavaScriptエンジンであるV8を改良する重要な変更を盛り込んだ。
MicrosoftもV8を利用している。同社はレガシー版「Edge」のJavaScriptエンジン「Chakra」を廃止し、新版Edgeで「Chromium」ベースに移行してV8に切り替えた。
Googleによると、SparkplugをV8のJavaScriptパイプラインに統合したことで、Chrome 91のパフォーマンスは最大23%高速化したという。
「高速なブラウザーを実現するための重要な要素は、JavaScriptの高速な処理だ」とGoogleは述べた。
「Chromeでは、毎日78年分以上に相当する量のJavaScriptコードを実行するV8エンジンがその処理を担う。M91(Chrome 91)では、新しいSparkplugコンパイラーと短い組み込み関数の呼び出しを実装したことで最大23%高速化し、毎日17年分以上のCPU使用時間を節約できる」(Google)
Sparkplugコンパイラーは、V8のバイトコードインタープリター「Ignition」と最適化コンパイラー「TurboFan」の間に置かれる。
GoogleのV8チームは公式ブログでSparkplugコンパイラーへの取り組みについて詳しく説明し、Sparkplugによるブラウザーパフォーマンス向上の秘密は、負荷の高い作業についてはすでにIgnitionインタープリターがコンパイルを済ませたものを利用するという「トリック」にあるとしている。担当チームはSparkplugを、「最適化しないJavaScriptコンパイラー」と呼んでいる。
「何よりも、Sparkplugはトリックを使う。これがコンパイルする関数はすでにバイトコードにコンパイルされており、バイトコードコンパイラーがすでに大変な作業の大部分を処理している。(中略)SparkplugはJavaScriptのソースからではなく、バイトコードからコンパイルするため、こうしたことを気にする必要はない」(Google)
「Sparkplugは、IgnitionとTurbofanの間でバランスを取っている。Sparkplugはネイティブのマシンコードを生成するとはいえ、JavaScriptコードの実行中に収集された情報には依存しないからだ。そのため、比較的高速なコードを生成しながらも、素早く処理を開始できる」(Google)
エンドユーザーにとってこれは、ウェブでの体験が高速化することを意味する。2008年に登場したGoogleのJavaScriptエンジンV8は、ブラウザーメーカー各社の競争において重要な転換点となった。V8の登場によって、それまでよりもはるかに大きなブラウザー向けアプリケーションをJavaScriptで開発できるようになり、Google ChromeとオープンソースのChromiumプロジェクトは他の主流ブラウザーより優位に立つことになった。
Microsoftも、「Edge 91」のリリースで大幅なパフォーマンスの向上をアピールしている。同社は、Edgeが「『Windows 10』の最高性能のブラウザー」になったとしている。
この記事は海外Red Ventures発の記事を朝日インタラクティブが日本向けに編集したものです。
CNET Japanの記事を毎朝メールでまとめ読み(無料)
ものづくりの革新と社会課題の解決
ニコンが描く「人と機械が共創する社会」
ZDNET×マイクロソフトが贈る特別企画
今、必要な戦略的セキュリティとガバナンス