「Node v0.10.0(Stable)」リリース

CodeZine / 2013年3月18日 13時17分

 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の呼び出しを抑制し、過度のガベージコレクション発生を防ぐ必要があった問題を改善し、アプリの応答時間を改善している。


CodeZine

トピックスRSS

ランキング