最新版「Node.js 12」が公開、TLS 1.3に対応診断レポート機能を導入

Googleの「V8」JavaScriptエンジンで動作するサーバサイドJavaScript環境の最新版「Node.js 12」が公開された。TLS 1.3対応や診断レポート機能の実験的導入など多数の改良が施されている。

» 2019年04月25日 19時30分 公開
[@IT]

この記事は会員限定です。会員登録(無料)すると全てご覧いただけます。

 Node.js Foundationは2019年4月23日(米国時間)、Googleの「V8」JavaScriptエンジンで動作するサーバサイドJavaScript環境の最新版「Node.js 12」を公開した。

 現在、「Node.js 10」が「Active LTS」(長期サポートの対象)というリリースステータスにあり、「Node.js 10.15.3 LTS」が推奨版として提供されている。Node.js 12は「Current」(最新)というリリースステータスにあり、2019年10月22日からActive LTSに移行する。

Node.jsのリリーススケジュール(出典:nodejs.org

 Node.js 12の新機能や強化機能の概要は次の通り。

V8 JavaScriptエンジンがV8 7.4にアップデート

 V8 JavaScriptエンジンが「V8 7.4」へアップデートされたことに伴い、Node.jsの新版では非同期スタックのトレースや引数ミスマッチにおける呼び出しの高速化、awaitの高速化、JavaScript解析の高速化といった改良が施された。

TLS 1.3への対応

 Node.js 12は、インターネットセキュリティプロトコルの最新版である「TLS 1.3」に対応するとともに、必要な場合は無効にするためのスイッチ(CLI/NODE_OPTIONS)をサポートしている。ただし、TLS 1.3はTLS 1.2と比較してセキュリティ上の強化が著しいため、なるべくTLS 1.3を使うべきだという。

デフォルトヒープ上限を適切に設定できる

 V8で設定されたデフォルトのJavaScriptヒープサイズを使用するのではなく、使用可能なメモリ量に基づいてヒープサイズを構成できるようになった。データセットのサイズが大きいときに役立つ。

デフォルトHTTPパーサをllhttpに変更

 Node.js 12では、デフォルトパーサを「llhttp」に切り替えた。これにより、新しいllhttpベースの実装のテストや比較が容易になった。

ネイティブモジュールの作成が容易に

 Node.js 12では、ネイティブモジュールの作成とサポートを容易にする取り組みが進んだ。ワーカースレッドと組み合わせたネイティブモジュールのサポートや、非同期関数に独自のスレッドを使いやすくするN-API バージョン4のサポートなどだ。

ワーカースレッドの改善

 実験的に導入済みのワーカースレッド機能を改良し、ワーカースレッドを使用する際にフラグを使う必要がなくなった。

診断レポートの導入

 実験的機能として「診断レポート」を導入した。これにより、要求に応じてまたは特定のイベントが発生したときにレポートを生成できるようになった。

 診断レポートにはクラッシュやパフォーマンスの低下、メモリリーク、高いCPU使用率、予期しないエラーなど運用環境で起こる問題の診断に役立つ情報が含まれている。

ヒープダンプ機能の提供

 Node.js 12では、ヒープダンプ機能を標準で提供するように変更した。

 これまではメモリに問題があった場合、ヒープダンプを生成するモジュールを本番環境にインストールしなければならなかったものの、速度の低下を招く可能性があった。

起動の改良とメインスレッド開始時間の短縮

 ビルド時に組み込みライブラリ用のコードキャッシュを事前に生成して、バイナリに埋め込むように改良した。

 これにより、最終リリースでは、メインスレッドがコードキャッシュを使って、初期ロードを開始できる。この効果は高く、メインスレッドの開始時間を最大30%短縮できる。

ES6モジュールのサポート

 Node.js 12では、実験的に提供済みの「ES6(ECMAScript6)モジュール」への対応を改善した。

 ECMAScript6は、ECMAScript標準の最新版。ES6モジュールサポートは、Node.js 12のActive LTSへの移行までに、正式なものにすることが計画されている。

コンパイラとプラットフォームの最小要件

 Node.jsとV8では、C++の新機能に対応するため、コンパイラの最適化やセキュリティの強化を進めている。そのため、macOSとWindows以外のプラットフォームでは、GCC 6とglibc 2.17が最小要件となった。

 Windowsでの最小要件はNode.js 11と同等。Windows 7/Server 2008 R2/Server 2012 R2と、Visual Studio 2017だ。macOSユーザーがNode.jsのコンパイルを行うには、Xcode 8以降が必要。nodejs.orgで提供されるNode.jsバイナリは、OS X 10.10(Yosemite)以降に対応する。

Copyright © ITmedia, Inc. All Rights Reserved.

スポンサーからのお知らせPR

注目のテーマ

Microsoft & Windows最前線2025
AI for エンジニアリング
ローコード/ノーコード セントラル by @IT - ITエンジニアがビジネスの中心で活躍する組織へ
Cloud Native Central by @IT - スケーラブルな能力を組織に
システム開発ノウハウ 【発注ナビ】PR
あなたにおすすめの記事PR

RSSについて

アイティメディアIDについて

メールマガジン登録

@ITのメールマガジンは、 もちろん、すべて無料です。ぜひメールマガジンをご購読ください。