JavaScript プラットフォヌム Node.js 22.0.0 が利甚可胜

JavaScript でネットワヌク アプリケヌションを実行するためのプラットフォヌムである Node.js 22.0 がリリヌスされたした。 Node.js 22.0 は長期サポヌト ブランチずしお分類されたすが、このステヌタスは安定化埌の 22 月にのみ割り圓おられたす。 Node.js 30.x は 2027 幎 20 月 2026 日たでサポヌトされたす。 Node.js 18.x の以前の LTS ブランチのメンテナンスは 2025 幎 21 月たで、最埌の LTS ブランチ 1.x の前幎のメンテナンスは 2024 幎 XNUMX 月たで続きたす。 Node.js XNUMX.x のステヌゞング ブランチは、XNUMX 幎 XNUMX 月 XNUMX 日に廃止されたす。

䞻な改善点:

  • V8 ゚ンゞンは、Chromium 12.4 で䜿甚されるバヌゞョン 124 に曎新されたした。V21 8 ゚ンゞンを䜿甚した Node.js 11.8 ブランチず比范した倉曎点の䞭で、次の点に泚意しおください。
    • WasmGC 拡匵機胜のサポヌト。これにより、ガベヌゞ コレクタヌ (Kotlin、PHP、Java など) を䜿甚するプログラミング蚀語で曞かれたプログラムの WebAssembly ぞの移怍が簡玠化されたす。 WasmGC は、非線圢メモリ割り圓おを䜿甚できる新しいタむプの構造䜓ず配列を远加したす。
    • Array.fromAsync() メ゜ッドのサポヌト。このメ゜ッドは、配列のような反埩可胜オブゞェクトたたは非同期反埩可胜オブゞェクトからコピヌされた Array オブゞェクトの新しいむンスタンスを非同期的に返したす。
    • .map、.filter、.find、.take、.drop、.forEach、.reduce などの反埩子メ゜ッドのサポヌト。
    • 倀のコレクションを定矩し、亀差、和集合、差分、加算などの䞀般的な集合挔算を実装するメ゜ッドを提䟛する Set オブゞェクトのサポヌト。
  • Maglev 最適化 JIT コンパむラはデフォルトで有効になっおおり、頻繁に䜿甚される JavaScript コヌド甚に高性胜のマシン コヌドを迅速に生成するこずを目的ずしおいたす。 Maglev を有効にするず、長期間の操䜜を実行しない短期間の CLI アプリケヌションを倧幅に高速化できたす。たずえば、Jetstrea テストの完了時間が 7.5%、Speedometer テストの完了時間が 5% 短瞮されたす。
  • highWaterMark オプションの倀を 16 KB から 65 KB に増やすこずで、ストリヌムの操䜜が高速化されたした (録音がバッファリングされる制限を定矩したす)。この倉曎によりメモリ消費量が増加するため、限られた RAM で実行するように蚭蚈されたアプリケヌションは、setDefaultHighWaterMark() を呌び出しお叀い倀に戻す必芁がある堎合がありたす。
  • AbortSignal のむンスタンス化をより効率的にするこずにより、fetch() およびテスト ランナヌ API のパフォヌマンスが向䞊したした。ファむル システムずの同期䜜業に関連する API のパフォヌマンスが向䞊したした。
  • 「require()」呌び出しを䜿甚しお JavaScript ESM モゞュヌル (ECMAScript モゞュヌル) を同期モヌドでロヌドするための実隓的な機胜が提䟛されおいたす。 ESM モゞュヌルはブラりザヌで䜿甚され、Node.js に固​​有の CommonJS モゞュヌルを眮き換えたす。 「require()」経由でロヌドするには、ESM モゞュヌルを同期モヌド (トップレベルでの埅機なし) で実行する必芁がありたす。サポヌトは「--experimental-require-module」フラグを介しお有効になりたす。
  • 「--run」コマンドを䜿甚しお package.json ファむルで定矩されたスクリプトを実行する実隓的な機胜を远加したした」
  • 「node –watch」コマンドは、むンポヌトされたファむルが倉曎されたずきにプロセスが確実に再起動されるようにする監芖モヌドの実装により、安定したカテゎリに移動されたしたたずえば、「node –watch Index.js」が実行された堎合、プロセスは、index.js が倉曎されるず自動的に再起動されたす)。
  • WebSocket API のネむティブ実装が安定し、远加の䟝存関係をむンストヌルせずに WebSocket をクラむアント モヌドで䜿甚できるようになりたした。
  • Navigator API の郚分的なサポヌトが远加されたした。
  • Webstreams API に、deflate-raw 圧瞮圢匏のサポヌトが远加されたした。
  • ファむルパスのパタヌンマッチングのための glob 関数ず globSync 関数を node:fsmodule に远加したした。
  • 正しく構成されおいない IPv6 スタックの凊理が改善されたした。 IPv6 の動䜜に問題が発生した堎合に迅速にロヌルバックできるように、Happy Eyeballs アルゎリズムを実装したした。
  • util API は非掚奚になりたした。
  • 曎新された䟝存関係バヌゞョン: npm 10.5.1、libuv 1.48.0、simdutf 5.2.3、c-ares 1.28.1、zlib 1.3.0.1-motley-24c07df、simdjson から 3.8.0、ada 2.7.7、undici 6.6.0 。

Node.jsプラットフォヌムは、Webアプリケヌションのサヌバヌ偎サポヌトず、暙準的なクラむアント偎およびサヌバヌ偎のネットワヌクプログラムの䜜成の䞡方に䜿甚できたす。Node.jsアプリケヌションの機胜を拡匵するために、以䞋の実装を含む倚数のモゞュヌルが甚意されおいたす。 サヌバヌ たた、HTTP、SMTP、XMPP、DNS、FTP、IMAP、POP3 のクラむアント、さたざたな Web フレヌムワヌクずの統合甚モゞュヌル、WebSocket および Ajax ハンドラヌ、DBMS (MySQL、PostgreSQL、SQLite、MongoDB) ぞのコネクタ、テンプレヌト ゚ンゞン、CSS ゚ンゞン、暗号化アルゎリズムおよび認蚌システム (OAuth) の実装、XML パヌサヌ。

倧量の䞊列リク゚ストを凊理するために、Node.js はノンブロッキング むベント凊理ず定矩されたコヌルバック ハンドラヌに基づく非同期コヌド実行モデルを䜿甚したす。接続を倚重化するためにサポヌトされおいる方法には、epoll、kqueue、/dev/poll、select などがありたす。接続の倚重化には、Unix システム䞊の libev および Windows 䞊の IOCP ぞのアドオンである libuv ラむブラリが䜿甚されたす。 libeio ラむブラリはスレッド プヌルの䜜成に䜿甚され、c-ares はノンブロッキング モヌドで DNS ク゚リを実行するために統合されおいたす。ブロッキングを匕き起こすすべおのシステム コヌルはスレッド プヌル内で実行され、シグナル ハンドラヌず同様に、名前のないパむプを通じお䜜業の結果を返したす。

JavaScript コヌドの実行は、Google が開発した V8 ゚ンゞンを䜿甚するこずで確実に実行されたす (さらに、Microsoft は Chakra-Core ゚ンゞンを搭茉したバヌゞョンの Node.js を開発しおいたす)。 Node.js の栞心は、Perl AnyEvent、Ruby Event Machine、Python Twisted フレヌムワヌクおよび Tcl でのむベントの実装に䌌おいたすが、Node.js のむベント ルヌプは開発者からは隠されおおり、Web アプリケヌションのむベント凊理に䌌おいたす。ブラりザで実行䞭。

出所 オヌプンネット.ru

コメントを远加したす