Node.js開発チームは、11日(現地時間)、Node.jsの最新安定版である「Node v0.10.0(Stable)」をリリースした。同バージョンは、使いやすさと後方互換性を重視しつつ、多くの部分に改良を施している。
大きな変更点としては、「Streams2」APIの変更が挙げられる。「Streams2」は、イベント処理を改善するために、従来のstreamインターフェースを大きく変更した。なお、Nodeコアにおけるすべてのstreamsは同一の拡張ベースクラスを使って作られているため、動作には一貫性があり、ユーザーランドプログラムのストリーミングインターフェースを容易に構築できる。
すでに「Streams2」APIは、npm登録されている多数のモジュール開発にreadable-streamライブラリが使用されている。readable-streamパッケージを使用すれば、従来のv0.8コードベースでも、新しいstreamインターフェースを使える。
ほかにも、ドメインモジュールのステータスが「Experimental」から「Unstable」に昇格し、v0.8でのドメインのエラー処理におけるエッジケースを、より容易に取り扱える。具体的には、ドメインのエラーハンドラはprocess.onに依存せず、Node内のC++コードはドメインアウェアとなっている。
さらに、従来は高負荷では処理が後回しにされ、エラーの原因ともなっていたprocess.nextTickを改善し、C++からJavaScriptへの呼び出しが行われるとただちに、nextTickハンドラが実行されるようにした。ただし、長時間動作しているジョブがI/Oイベントループを専有しないように、process.nextTickに再帰呼び出しを使用する必要がある。
ガベージコレクションにも改良を施しており、v8ではidleNotificationの呼び出しを抑制し、過度のガベージコレクション発生を防ぐ必要があった問題を改善し、アプリの応答時間を改善している。
【関連リンク】
・Node.js
この記事は参考になりましたか?
- この記事の著者
-
CodeZine編集部(コードジンヘンシュウブ)
CodeZineは、株式会社翔泳社が運営するソフトウェア開発者向けのWebメディアです。「デベロッパーの成長と課題解決に貢献するメディア」をコンセプトに、現場で役立つ最新情報を日々お届けします。
※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です