V8 (JavaScriptエンジン)

V8は、Googleが開発するオープンソースのJIT仮想マシン型のJavaScriptエンジンである[3]。この名前は同じく「V8」と略…

V8 (JavaScriptエンジン)
V8
V8ロゴ
開発元 Google
初版 2008年9月2日 (17年前) (2008-09-02)
最新版
11.4[1] ウィキデータを編集 / 2023年5月24日 (3年前)
リポジトリ ウィキデータを編集
プログラミング
言語
C++
対応OS Windows 7 以降
macOS 10.12 以降
Linux
プラットフォーム x64, IA-32, ARM, MIPS[2]
種別 JavaScriptエンジン
ライセンス 修正BSDライセンス
公式サイト v8.dev ウィキデータを編集
テンプレートを表示

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]

脚注

関連項目

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

外部リンク


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.

  1. 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:
  2. 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.
  3. 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.
  4. 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.
  5. Responsible use. Any risk arising from the use of information from this website is entirely the responsibility of the user.