V8 JavaScript Engine
別名:V8,Google V8,Google V8 JavaScript Engine
V8 JavaScript Engineとは、Googleが開発したJavaScriptエンジン(実行プログラム)の名称である。
Googleが開発者向けの技術情報を提供している「Google Code」の案内によれば、V8 JavaScript Engineの主な特徴は次の通りである。すなわち、V8 JavaScript Engineは、JavaScriptの標準規格であるECMAScript(ECMA-262)に準拠したJavaScriptエンジンである。C++によって記述されており、スタンドアローンで動作する。V8 JavaScript Engine自体をC++のライブラリと同様に扱うことが可能で、C++で記述されたアプリケーションに組み込んで動作させることもできる。
V8 JavaScript Engineは、IA-32、もしくは、ARMのアーキテクチャが採用されたCPUを搭載しているWindows XP、Windows Vista、Mac OS X v10.5 Leopard、Linuxに対応している。
V8 JavaScript Engineは、Googleが2008年9月にベータ版で初めて公開したオープンソースのWebブラウザ「Google Chrome」において用いられている。Google Chromeとともに、V8 JavaScript Engineもオープンソースとして公開されており、Google Codeからソースコードを無償で入手することができる。
参照リンク
v8 - Google Code
Google: | Google Tags タップして翻訳 ディスプレイ広告ビルダー V8 JavaScript Engine ワンダーホイール YouTube |
LINE: | エモーションシェアリング |
V8 (JavaScriptエンジン)
![]() | |
開発元 | |
---|---|
初版 | 2008年9月2日 |
最新版 | |
リポジトリ | |
プログラミング 言語 | C++ |
対応OS |
Windows 7 以降 macOS 10.12 以降 Linux |
プラットフォーム | x64, IA-32, ARM, MIPS[2] |
種別 | JavaScriptエンジン |
ライセンス | 修正BSDライセンス |
公式サイト |
v8 |
V8は、Googleが開発するオープンソースのJIT Virtual Machine型のJavaScriptエンジンである[3]。この名前は同じく「V8」と略されるV型8気筒エンジンに由来している[4]。Google ChromeなどのChromiumベースのブラウザや、Node.jsなどで採用されている。
概要
ECMAScript (ECMA-262) 準拠で、C++で記述されている。スタンドアロンでの実行が可能なほか、C++で書かれたアプリケーションの一部として動作させることもできる。
Firefox 3.5で導入されたJavaScriptエンジンTraceMonkeyでは、インタープリタで実行して統計情報をとった後に[5]、中間コードに変換し、その上でJITコンパイルしていた。しかしV8では、中間コードもなく、インタープリタも搭載せずに最初の実行時からコンパイルするため、高速に作動する[3]。
開発リーダーは、Java HotSpot の開発者でもある、ラース・バク。
V8のアセンブラは、Strongtalkのアセンブラをベースとしている。
2010年12月に”Crankshaft”と呼ばれる最適化コンパイラが導入されスピードが改善された。
2017年5月にリリースされたv5.9から、それまで利用されてきたコンパイラ”Full-Codegen”と最適化コンパイラ”Crankshaft”が取り除かれて3年半に渡って開発が行われていたインタプリタ”Ignition”とコンパイラ”TurboFan”の組み合わせに置き換えられ、メモリ消費量の削減とスピードの改善が行われた[6]。
2021年5月にリリースされたv9.1から、非最適化コンパイラ”Sparkplug”がパイプラインの”Ignition”と”TurboFan”の間に追加された。”Sparkplug”はバイトコードから1パスで直接機械語に高速にコンパイルする[7]。
2023年に静的単一代入を用いたコンパイラ”Maglev”が”Sparkplug”と”TurboFan”の間に追加された。コンパイル速度は”Sparkplug”よりも10倍遅いが”TurboFan”よりも10倍速い[8]。
脚注
- ^ "Chrome Platform Status"; 閲覧日: 2023年6月29日.
- ^ “Documentation”. V8 Project. 2020年2月27日閲覧。
- ^ a b Design Elements - Google V8 JavaScript Engine - Google Code
- ^ “「V8」エンジンに込めた高速化の願い、Google Chromeの狙いとは”. ITmedia (2008年9月3日). 2011年12月24日閲覧。
- ^ an overview of TraceMonkey ✩ hacks.mozilla.org
- ^ Launching Ignition and TurboFan
- ^ Sparkplug — a non-optimizing JavaScript compiler · V8
- ^ “Maglev - V8's Fastest Optimizing JIT” (2023年12月5日). 2024年5月7日閲覧。
関連項目
外部リンク
- 公式ウェブサイト (英語)
- V8 (JavaScript engine)のページへのリンク