node.jsのエンジンは「Chrome V8」です。 Node.js は主に Chrome V8 エンジン、標準ライブラリ、ローカル モジュールで構成されており、そのうち V8 エンジンは JavaScript コードの解析と実行を担当し、JS コードをネイティブ マシン コードに直接コンパイルし、キャッシュ メカニズムを使用してパフォーマンスを向上させます。 。
#このチュートリアルの動作環境: Windows7 システム、nodejs バージョン 12.19.0、DELL G3 コンピューター。
nodejs とは何ですか?
Node.js は、Chrome V8 エンジンに基づく JavaScript ランタイム環境です。
Node.js はイベント駆動型のノンブロッキング I/O モデルを使用しており、軽量かつ効率的です。
簡単に言えば、Node.js はサーバー側で実行される JavaScript であり、JavaScript はサーバー側のプログラミングに使用されます。
Node.js は、JavaScript をサーバー側で実行できるようにする開発プラットフォームであり、JavaScript の範囲をサーバー側に拡張し、PHP、JSP、Python、Ruby と同等の立場に立つことができます。
Node.js は独立した言語ではありません。言語でもプラットフォームでもある PHP、JSP、Python、Perl、Ruby とは異なり、Node.js はプログラミングに JavaScript を使用し、JavaScript エンジンで実行されます ( V8)。
Nodejs 開発は、npm 開発コミュニティによって提供される多数のサードパーティ パッケージに加えて、基本的な ECMAScript スクリプト言語と、プログラミング用のノード プラットフォームによって提供される一連のプログラミング インターフェイスの使用で構成されます。
Node.js の構成
Node.js ランタイムは主に V8 エンジン、標準ライブラリ、ローカル モジュール、特にローカル モジュールで構成されます。 Node.js の量によって、Node.js の機能の強度が最下位レベルで決まります。
1) V8 エンジン
V8 エンジンは JavaScript インタプリタであり、JavaScript コードの解析と実行を担当します。
V8 エンジンは、Java 仮想マシンと C コンパイラの多くのテクノロジを利用しています。JavaScript コードをネイティブ マシン コードに直接コンパイルし、キャッシュ メカニズムを使用してパフォーマンスを向上させます。これにより、JavaScript は、Java 仮想マシンと同等の速度で実行されます。バイナリプログラム。
2) ローカル モジュール
Node.js は、次のような C/C 言語で実装された多くの高性能オープン ソース ライブラリを統合します。
##モジュール
説明 |
| libuv
クロスプラットフォームのイベント駆動型非同期 I/O図書館 。ただし、libuv は I/O に限定されず、プロセス管理、スレッド プール、信号処理、タイマーなどの機能も提供します。 | Linux ではすべてがファイルであり、ここでの I/O にはファイルの読み書きだけでなく、データベースの読み書き、ネットワーク通信 (ソケット) などが含まれます。
| nmp
Node.js パッケージ マネージャーでは、パッケージのダウンロード、パッケージのインストール、パッケージのアンインストール、パッケージの更新、パッケージのアップロードなどができます。 |
| http_parser
Web アプリケーション開発をサポートするために C 言語で書かれた軽量の HTTP パーサー。 |
| zlib
工業グレードのデータ圧縮/解凍モジュールである Nodejs は、zlib を使用して同期、非同期、またはストリーミングの圧縮/解凍インターフェイスを作成します。 |
| OpenSSL
このモジュールは、SSL プロトコルや https プロトコルなど、最新の Web がセキュリティのために依存している、厳密にテストされた暗号化/復号化機能の多くを提供します。 |
| c-ares
非同期 DNS クエリおよび解決ライブラリ。 |
|
Node.js は JavaScript コードをコンピューター上で直接実行し、JavaScript に強力な機能を提供するため、ローカル モジュールとブラウザーのランタイムの間には多くの大きな違いがあり、ほとんどつながりがありません。 Node.js はブラウザをほぼ完全に放棄し、新しい JavaScript ランタイムをゼロから構築しました。
3) 標準ライブラリ
ローカル モジュールは C/C で記述されており、Node.js は JavaScript 開発者向けであるため、ローカル モジュールの C/C インターフェイスはカプセル化する必要があり、一連のエレガントな JavaScript インターフェイスを開発者に提供し、さまざまなプラットフォーム (オペレーティング システム) 上でインターフェイスの一貫性を維持する必要があります。
この JavaScript インターフェイスのセットは、Node.js 標準ライブラリです。標準ライブラリがエレガントで強力であるかどうかは、Node.js の使いやすさを決定し、Node.js の市場パフォーマンスに直接影響します。
概要
V8 エンジンと多くのローカル モジュールは既製です。他の人がすでにホイールを構築しています。Node.js の主な仕事は、適切なモジュールを選択することです。これらが統合され、JavaScript インターフェースが記述されます。
もちろん、すべてのローカル モジュールが適切であるとは限りません。Node.js は独自のモジュールもいくつか作成しています。代表的なものは Libuv です。 Libuv は Node.js のコアかつ最も基本的なモジュールであり、Node.js は完全に Libuv に基づいて構築されています。
Node.js はイベントベースのシングルスレッド非同期 I/O アーキテクチャを採用していると聞いたことがあるかもしれませんが、これが Node.js の最大の特徴であり、他のスクリプト言語との最大の違いです。 . js のこの機能は、Libuv に依存することで実現されます。
Libuv は非常に強力であるため、公式はこれを Node.js から分離し、別個のネットワーク ライブラリとしてリリースし、オープンソースで無料にすることを決定しました。現在、Libuv は非常に人気があり、従来の Libeven ライブラリ、libev ライブラリと合わせて「三大 C/C ネットワーク ライブラリ」と呼ばれています。
Node.js が有名なのは、主に V8 エンジンと Libuv ライブラリを使用しているためです。V8 エンジンは Node.js の効率的な実行を保証し、Libuv ライブラリはイベントに基づいた非同期 I/O を提供します。ループ能力。
概要
Node.js は JavaScript ランタイムであり、JavaScript をブラウザ環境から分離し、ブラウザ環境上で直接実行できるようにします。 JavaScript の用途を大幅に拡大します。私たちは JavaScript を Python、Java、Ruby などの他のプログラミング言語と同じレベルで扱うべきであり、もはや「ガジェット」として扱うのはやめましょう。
最後に、JavaScript と Node.js の歴史をまとめてみましょう:
Netscape ブラウザは JavaScript スクリプトを派生させ、Web ページ プログラミング機能を提供しました;
Chrome ブラウザは、JavaScript のパフォーマンスを向上させる V8 エンジンを派生します;
-
V8 エンジンは Node.js を構築し、JavaScript プログラミング機能を拡張します;
Node.js は Libuv ライブラリを派生し、ネットワーク開発に優れたツールを追加します。
ノード関連の知識の詳細については、nodejs チュートリアル を参照してください。
以上がNode.jsのエンジンは何ですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。