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ランタイム

外部リンク

編集


📚 Artikel Terkait di Wikipedia

JavaScriptエンジン

V8は一般的なNode.jsランタイムシステムのコアコンポーネントとして使用されている。 ECMAScriptはJavaScriptの標準仕様で、ECMAScriptエンジン (英語: ECMAScript engine) はJavaScriptエンジンの別名として使われる。

Node.js

Node.js(ノード・ジェイエス) はV8 JavaScriptエンジン上に構築されたJavaScript実行環境の1つである。イベント化された入出力を扱うサーバサイドJavaScript環境であり、Webサーバなどのスケーラブルなネットワークプログラムの記述を意図している。ライアン・ダールによ

ECMAScript

ActionScript 3 の上位互換だが、互換でない仕様が一部に入る[要出典] V8 - C++ - Google Chromeブラウザで使われている Rhino (Rhino) - Java Narcissus - JavaScript SpiderMonkey (SpiderMonkey) - C -

PHP (プログラミング言語)

LicenseおよびZend Engine Licenseの下で公開されている自由なソフトウェアである。 PHP4以降において、プログラミング言語としてのPHPを解釈・実行するエンジンとしてZend Engineが使用されており、PHP5よりZend Engine 2、PHP7ではZend Engine 3へと順次バージョンアップされている。

Google Chrome

めにウィンドウプロセスとの通信は増加するも、個別タブのクラッシュやメモリリークの影響が他のタブへ影響しない。 処理を高速化するためにJavaScriptエンジンはV8を採用した。 セキュリティ対策機能は、個々のプロセスを保護して問題が発生しても他へ影響を及ぼさぬサンドボックス機能、Google以外のページ閲覧履歴や

3Dライブラリ

BulletをEmscriptenでJavascript及びWebAssemblyに変換したもの。zlibライセンス。PlayCanvas Engineやthree.jsやBabylon.jsがAmmo.jsとの連携に対応している。 Oimo.js OimoPhysicsをJavascriptに移植したもの。MITライセンス。Babylon

WebKit

JavaScriptCoreは、WebKitの実装にJavaScriptエンジンを提供するフレームワークであり、またmacOSのその他の場面で使用される同様のスクリプティングを提供する。JavaScriptCoreはKDE's JavaScript engine (KJS) ライブラリおよびPerl Compatible

Portable Document Format

についての特許を無償で利用できるようにしたが、XFA(英語版) (Adobe XML Forms Architecture) や Adobe JavaScript などはアドビのプロプライエタリな部分として残っている。 PDFファイルは 印刷可能なあらゆる文書から生成でき、表示や印刷は各社が無料、有料で配布しているソフトウェアを利用する。