ニュース

サーバーサイドJavaScript環境「Node.js 12」がリリース

「V8」のアップデートや「TLS 1.3」のサポート、起動速度の改善など

「Node.js 12」がリリース

 サーバーサイドJavaScript環境「Node.js」の新しいメジャーバージョン「Node.js 12」が、4月23日にリリースされた。JavaScriptエンジン「V8」のアップデートや「TLS 1.3」のサポート、起動速度の改善などが行われている。

 「Node.js 12」は、昨年10月に公開された「Node.js 11」に代わる“Current”リリース。「Node.js」のメジャーリリースは4月と10月の年2回実施されるが、4月にリリースされる偶数バージョンは、その次の奇数バージョンが公開されると長期サポート(Long-term support:LTS)へ移行する。「Node.js 12」の場合、今年10月から2021年4月までの18カ月間は“Active LTS”として積極的にメンテナンスされる。その後は18カ月間の“Maintenance LTS”へ移行し、セキュリティにかかわる問題など、最小限のメンテナンスが行われる。サポート終了(EoL)は2022年4月。

「Node.js」のリリースサイクル

 「Node.js 12」では、JavaScriptエンジン「V8」がv7.4へとアップグレードされ、引数の数がマッチしないケースでの関数呼び出しでオーバーヘッドが最大60%削減されたほか、“Harmony await optimization”と呼ばれる手法(「Google Chrome 72」でもデフォルト有効化)により“await”を利用した非同期処理が高速化された。非同期処理のスタックトレースやJavaScriptのパースも改善されている。

 また、ビルトインライブラリのコードキャッシュを事前に生成し、ビルド時にバイナリへ埋め込むことにより、起動速度を最大30%向上。デフォルトのヒープ制限も、プラットフォームで固定の値(32bit環境で700MB、64bit環境で1,400MB)を用いるのではなく、利用可能なメモリをベースに設定できるようになった。これは大きなデータセットを処理する際に役立つ。

 そのほかにも、「OpenSSL 1.1.1」の採用により「TLS 1.3」をサポート。デフォルトのHTTPパーサーは「llhttp」へと変更された。また、ES6モジュールが実験的にサポートされたほか、診断レポートの追加やヒープダンプの改善により、デバッグやトラブルシューティングが容易となった。