V8_(JavaScriptエンジン)
[Wikipedia|▼Menu]

V8
開発元Google
初版2008年9月2日 (15年前) (2008-09-02)

最新版11.4[1]  / 2023年5月24日 (11か月前)
リポジトリ

chromium.googlesource.com/v8/v8

プログラミング
言語C++
対応OSWindows 7 以降
macOS 10.12 以降
Linux
プラットフォームx64, IA-32, ARM, MIPS[2]
種別JavaScriptエンジン
ライセンス修正BSDライセンス
公式サイトv8.dev
テンプレートを表示

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日閲覧。

関連項目.mw-parser-output .side-box{margin:4px 0;box-sizing:border-box;border:1px solid #aaa;font-size:88%;line-height:1.25em;background-color:#f9f9f9;display:flow-root}.mw-parser-output .side-box-abovebelow,.mw-parser-output .side-box-text{padding:0.25em 0.9em}.mw-parser-output .side-box-image{padding:2px 0 2px 0.9em;text-align:center}.mw-parser-output .side-box-imageright{padding:2px 0.9em 2px 0;text-align:center}@media(min-width:500px){.mw-parser-output .side-box-flex{display:flex;align-items:center}.mw-parser-output .side-box-text{flex:1}}@media(min-width:720px){.mw-parser-output .side-box{width:238px}.mw-parser-output .side-box-right{clear:right;float:right;margin-left:1em}.mw-parser-output .side-box-left{margin-right:1em}}ウィキメディア・コモンズには、V8 (JavaScriptエンジン)に関連するカテゴリがあります。

Blink - Chromiumベースのブラウザで採用されているレンダリングエンジン

Node.js JavaScriptランタイム

Deno JavaScriptランタイム

外部リンク

公式ウェブサイト
(英語)











JavaScript
概念

文法(英語版)

JavaScriptライブラリ

控えめなJavaScript

エンジン

Carakan/Futhark/Linear B

Chakra

JavaScriptCore

JScript

KJS

Narcissus

Nashorn

Rhino

SpiderMonkey

V8

コンパイラ

AtScript

Babel

ClojureScript

CoffeeScript

Emscripten

Google Closure Compiler

Google Web Toolkit

Haxe

JSX(英語版)

Kotlin

Nim

PureScript

TypeScript

デバッガ

Firebug

Google Chrome Developer Tools

Internet Explorer Developer Tools

Opera Dragonfly

Visual Studio

Visual Studio Express


Visual Studio Code

Web Inspector

エディタ

Atom

Brackets

Visual Studio

Visual Studio Express


Light Table

Visual Studio Code

WebStorm

サーバーサイド

Active Server Pages

Bun

CommonJS

Deno

Node.js

Vert.x(英語版)

Wakanda(英語版)

フレームワークライブラリ

Angular/AngularJS

Backbone.js

Dojo

Express.js

Ext JS

Google Web Toolkit

jQuery

Mobile


KaTeX

MathJax

MochiKit

MooTools

Prototype

React

Vue.js

YUI Library(英語版)

ユニットテスト

Jasmine(英語版)

Jest

Mocha(英語版)

QUnit

ユニットテスト・フレームワーク一覧

Docジェネレータ

JSDoc

コード解析

ESLint

JSHint

JSLint

パッケージ管理

npm

NuGet

アプリケーションバンドラー

Webpack

関連技術

Ajax

CSS

DHTML

DOM

HTML

JSON

JSONP

WebAssembly

asm.js(英語版)

人物

ジョン・レシグ

ダグラス・クロックフォード(英語版)

ブレンダン・アイク

ライアン・ダール



カテゴリ

コモンズ

ウィキブックス

Portal:コンピュータ










ECMAScript
方言

ActionScript

DMDScript

JavaScript

asm.js(英語版)


JScript

TypeScript

WMLScript

エンジン(英語版)

Carakan/Futhark/Linear B

Chakra

JavaScriptCore

JScript

KJS

Narcissus

Rhino

SpiderMonkey

V8

フレームワーク
ライブラリ

クライアントサイド

Dojo

Ext JS

Google Web Toolkit

jQuery

MochiKit

MooTools

Prototype

YUI Library(英語版)

サーバーサイド

Jaxer

Deno

Node.js

ライブラリ

Backbone.js

Underscore.js


人物

ブレンダン・アイク

ダグラス・クロックフォード(英語版)

ジョン・レシグ

スコット・アイザックス(英語版)

ライアン・ダール

その他

AMD(英語版)

CommonJS

DHTML

E4X

Ecmaインターナショナル

JSDoc

JSGI(英語版)

JSHint

JSLint

JSON

JSSS(英語版)

.mw-parser-output .asbox{position:relative;overflow:hidden}.mw-parser-output .asbox table{background:transparent}.mw-parser-output .asbox p{margin:0}.mw-parser-output .asbox p+p{margin-top:0.25em}.mw-parser-output .asbox{font-size:90%}.mw-parser-output .asbox-note{font-size:90%}.mw-parser-output .asbox .navbar{position:absolute;top:-0.90em;right:1em;display:none}

この項目は、コンピュータに関連した書きかけの項目です。この項目を加筆・訂正などしてくださる協力者を求めていますPJ:コンピュータ/P:コンピュータ)。
.mw-parser-output .hlist ul,.mw-parser-output .hlist ol{padding-left:0}.mw-parser-output .hlist li,.mw-parser-output .hlist dd,.mw-parser-output .hlist dt{margin-right:0;display:inline-block;white-space:nowrap}.mw-parser-output .hlist dt:after,.mw-parser-output .hlist dd:after,.mw-parser-output .hlist li:after{white-space:normal}.mw-parser-output .hlist li:after,.mw-parser-output .hlist dd:after{content:" ・\a0 ";font-weight:bold}.mw-parser-output .hlist dt:after{content:": "}.mw-parser-output .hlist-pipe dd:after,.mw-parser-output .hlist-pipe li:after{content:" |\a0 ";font-weight:normal}.mw-parser-output .hlist-hyphen dd:after,.mw-parser-output .hlist-hyphen li:after{content:" -\a0 ";font-weight:normal}.mw-parser-output .hlist-comma dd:after,.mw-parser-output .hlist-comma li:after{content:"、";font-weight:normal}.mw-parser-output .hlist-slash dd:after,.mw-parser-output .hlist-slash li:after{content:" /\a0 ";font-weight:normal}.mw-parser-output .hlist dd:last-child:after,.mw-parser-output .hlist dt:last-child:after,.mw-parser-output .hlist li:last-child:after{content:none}.mw-parser-output .hlist dd dd:first-child:before,.mw-parser-output .hlist dd dt:first-child:before,.mw-parser-output .hlist dd li:first-child:before,.mw-parser-output .hlist dt dd:first-child:before,.mw-parser-output .hlist dt dt:first-child:before,.mw-parser-output .hlist dt li:first-child:before,.mw-parser-output .hlist li dd:first-child:before,.mw-parser-output .hlist li dt:first-child:before,.mw-parser-output .hlist li li:first-child:before{content:" (";font-weight:normal}.mw-parser-output .hlist dd dd:last-child:after,.mw-parser-output .hlist dd dt:last-child:after,.mw-parser-output .hlist dd li:last-child:after,.mw-parser-output .hlist dt dd:last-child:after,.mw-parser-output .hlist dt dt:last-child:after,.mw-parser-output .hlist dt li:last-child:after,.mw-parser-output .hlist li dd:last-child:after,.mw-parser-output .hlist li dt:last-child:after,.mw-parser-output .hlist li li:last-child:after{content:")\a0 ";font-weight:normal}.mw-parser-output .hlist ol{counter-reset:listitem}.mw-parser-output .hlist ol>li{counter-increment:listitem}.mw-parser-output .hlist ol>li:before{content:" "counter(listitem)" ";white-space:nowrap}.mw-parser-output .hlist dd ol>li:first-child:before,.mw-parser-output .hlist dt ol>li:first-child:before,.mw-parser-output .hlist li ol>li:first-child:before{content:" ("counter(listitem)" "}.mw-parser-output .navbar{display:inline;font-size:75%;font-weight:normal}.mw-parser-output .navbar-collapse{float:left;text-align:left}.mw-parser-output .navbar-boxtext{word-spacing:0}.mw-parser-output .navbar ul{display:inline-block;white-space:nowrap;line-height:inherit}.mw-parser-output .navbar-brackets::before{margin-right:-0.125em;content:"[ "}.mw-parser-output .navbar-brackets::after{margin-left:-0.125em;content:" ]"}.mw-parser-output .navbar li{word-spacing:-0.125em}.mw-parser-output .navbar-mini abbr{font-variant:small-caps;border-bottom:none;text-decoration:none;cursor:inherit}.mw-parser-output .navbar-ct-full{font-size:114%;margin:0 7em}.mw-parser-output .navbar-ct-mini{font-size:114%;margin:0 4em}.mw-parser-output .infobox .navbar{font-size:88%}.mw-parser-output .navbox .navbar{display:block;font-size:88%}.mw-parser-output .navbox-title .navbar{float:left;text-align:left;margin-right:0.5em}


次ページ
記事の検索
おまかせリスト
▼オプションを表示
ブックマーク登録
mixiチェック!
Twitterに投稿
オプション/リンク一覧
話題のニュース
列車運行情報
暇つぶしWikipedia

Size:23 KB
出典: フリー百科事典『ウィキペディア(Wikipedia)
担当:undef