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の準備に少し時間がかかるかもしれませんが、一度準備が完了すれば、純粋に解釈されたコードよりもはるかにパフォーマンスが向上するからです。