V8 (JavaScriptエンジン)
V8は、Googleが開発するオープンソースのJIT仮想マシン型のJavaScriptエンジンである[3]。この名前は同じく「V8」と略…
|
| |
| 開発元 | |
|---|---|
| 初版 | 2008年9月2日 |
| 最新版 | |
| リポジトリ | |
| プログラミング 言語 | C++ |
| 対応OS |
Windows 7 以降 macOS 10.12 以降 Linux |
| プラットフォーム | x64, IA-32, ARM, MIPS[2] |
| 種別 | JavaScriptエンジン |
| ライセンス | 修正BSDライセンス |
| 公式サイト |
v8 |
V8は、Googleが開発するオープンソースのJIT仮想マシン型の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日閲覧。
関連項目
外部リンク
Content Disclaimer
Informasi ini disarikan dari Wikipedia dan disajikan kembali untuk tujuan edukasi. Konten tersedia di bawah lisensi CC BY-SA 3.0. Kami tidak bertanggung jawab atas ketidakakuratan data yang bersumber dari kontribusi publik tersebut.
- The information displayed on this website is sourced in part or in whole from Wikipedia and has been adapted for the purpose of restating it. We strive to provide accurate and relevant information, however:
- There is no guarantee of absolute accuracy. Wikipedia is an open, collaborative project that can be edited by anyone, so information is subject to change.
- It is not intended to constitute professional advice. The content displayed is for informational and educational purposes only. For important decisions (e.g., medical, legal, or financial), please consult a professional.
- Content copyright. Wikipedia is licensed under the Creative Commons Attribution-ShareAlike License (CC BY-SA). This means that content may be reused with appropriate attribution and shared under a similar license.
- Responsible use. Any risk arising from the use of information from this website is entirely the responsibility of the user.