V8 (JavaScriptエンジン)

V8は、Googleが開発するオープンソースのJIT仮想マシン型のJavaScriptエンジンであるDesign Elements - Google V8 JavaScript Engine - Google Code。この名前は同じく「V8」と略されるV型8気筒エンジンに由来している。Google ChromeなどのChromiumベースのブラウザや、Node.jsなどで採用されている。

 概要 
ECMAScript (ECMA-262) 準拠で、C++で記述されている。スタンドアローンでの実行が可能なほか、C++で書かれたアプリケーションの一部として動作させることもできる。

Firefox 3.5で導入されたJavaScriptエンジンTraceMonkeyでは、インタプリタで実行して統計情報をとった後にan overview of TraceMonkey ✩ hacks.mozilla.org、中間コードに変換し、その上でJITコンパイルしていた。しかしV8では、中間コードもなく、インタプリタも搭載せずに最初の実行時からコンパイルするため、高速に作動する。

開発リーダーは、Java HotSpot の開発者でもある、。

V8のアセンブラは、のアセンブラをベースとしている。

2010年12月に "Crankshaft" と呼ばれる最適化コンパイラが導入されスピードが改善された。

2017年5月にリリースされたv5.9から、それまで利用されてきたコンパイラ "Full-Codegen" と最適化コンパイラ "Crankshaft" が取り除かれて3年半に渡って開発が行われていたインタプリタ "Ignition" とコンパイラ "TurboFan" の組み合わせに置き換えられ、メモリ消費量の削減とスピードの改善が行われたLaunching Ignition and TurboFan。

2021年5月にリリースされたv9.1から、非最適化コンパイラ "Sparkplug" がパイプラインの "Ignition" と "TurboFan" の間に追加された。"Sparkplug" はバイトコードから1パスで直接機械語に高速にコンパイルするSparkplug — a non-optimizing JavaScript compiler · V8。

2023年に静的単一代入を用いたコンパイラ "Maglev" が "Sparkplug" と "TurboFan" の間に追加された。コンパイル速度は "Sparkplug" よりも10倍遅いが "TurboFan" よりも10倍速い。

 脚注 

 関連項目 

Blink - Chromiumベースのブラウザで採用されているレンダリングエンジン
Node.js JavaScriptランタイム
Deno JavaScriptランタイム

 外部リンク 


Category:JavaScript
Category:仮想マシン
V8 JavaScript Engine
Category:2008年のソフトウェア