Skip to content

V8 JavaScriptエンジン

V8は、Google Chromeを動かすJavaScriptエンジンです。Chromeでブラウジング中にJavaScriptを受け取り、実行するものです。

V8はJavaScriptエンジン、つまりJavaScriptコードを解析して実行するものです。DOMやその他のWebプラットフォームAPI(それらはすべてランタイム環境を構成します)は、ブラウザによって提供されます。

素晴らしい点は、JavaScriptエンジンがホストされているブラウザから独立していることです。この重要な機能により、Node.jsの台頭が可能になりました。2009年にNode.jsを動かすエンジンとしてV8が選ばれ、Node.jsの人気爆発とともに、V8は現在、JavaScriptで書かれた膨大な量のサーバーサイドコードを動かすエンジンとなりました。

Node.jsエコシステムは巨大であり、Electronのようなプロジェクトによるデスクトップアプリも動かすV8のおかげです。

その他のJSエンジン

他のブラウザには独自のJavaScriptエンジンがあります。

  • SpiderMonkey (Firefox)
  • JavaScriptCore(別名Nitro) (Safari)
  • Edgeは元々Chakraに基づいていましたが、最近ChromiumとV8エンジンを使用して再構築されました。

そして、他にも多くのエンジンが存在します。

これらのエンジンはすべて、ECMA ES-262標準(ECMAScriptとも呼ばれる)を実装しており、これはJavaScriptで使用される標準です。

パフォーマンスの追求

V8はC++で記述されており、継続的に改善されています。ポータブルで、Mac、Windows、Linux、およびその他のいくつかのシステムで動作します。

このV8入門では、V8の実装の詳細については無視します。それらはより権威のあるサイト(例:V8公式サイト)で見つけることができ、時間とともに、しばしば根本的に変化します。

V8は、他のJavaScriptエンジンと同様に、常に進化し、WebとNode.jsエコシステムの速度を向上させています。

ウェブ上では、長年にわたってパフォーマンス競争が行われており、私たち(ユーザーと開発者)は、この競争から大きな恩恵を受けており、年々高速で最適化されたマシンを利用できるようになっています。

コンパイル

JavaScriptは一般的にインタープリタ言語と見なされていますが、最新のJavaScriptエンジンは単にJavaScriptを解釈するだけでなく、コンパイルしています。

これは、2009年にSpiderMonkey JavaScriptコンパイラがFirefox 3.5に追加されて以来、多くのエンジンが採用した手法です。

JavaScriptは、V8によってJust-In-Time(JIT)コンパイルを使用して内部的にコンパイルされ、実行速度が向上します。

これは直感に反するように思えるかもしれませんが、2004年のGoogle Mapsの導入以来、JavaScriptは、数十行のコードを実行する言語から、数千から数十万行のコードをブラウザ上で実行する完全なアプリケーションへと進化しました。

私たちのアプリケーションは、ほんの数個のフォーム検証ルールや単純なスクリプトではなく、今ではブラウザ内で数時間実行できるようになりました。

この新しい世界では、JavaScriptのコンパイルは完全に理にかなっています。JavaScriptの準備に少し時間がかかるかもしれませんが、一度準備が完了すれば、純粋に解釈されたコードよりもはるかにパフォーマンスが向上するからです。