最新版「Node.js 12」が公開、TLS 1.3に対応:診断レポート機能を導入
Googleの「V8」JavaScriptエンジンで動作するサーバサイドJavaScript環境の最新版「Node.js 12」が公開された。TLS 1.3対応や診断レポート機能の実験的導入など多数の改良が施されている。
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 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.
関連記事
Google、「Apigee APIプラットフォーム」にAPI監視やサービス拡張などの機能を追加
Googleは、ライフサイクルAPI管理に役立つ「Apigee APIプラットフォーム」について、新機能である「Apigee APIモニタリング」「Apigeeエクステンション」「Apigeeホステッドターゲット」の正式提供を開始した。VS CodeでJavaScriptアプリを作成する上で知っていると便利(?)なこと
Node.jsアプリを例に、VS CodeでのJavaScriptアプリ開発時に知っていると便利な機能やデバッグの基礎を取り上げる。いまさら聞けないNode.jsの基礎知識とnpm、Gulpのインストール
MEANスタックを用いたWebアプリの開発方法について紹介していく連載。今回はMEANスタックの中心となる技術、Node.jsについて基本的な部分や環境構築方法、その周辺ツールとしてnpmとGulpを紹介します。