node.jsを使うとサーバーリソースを抑えられるという。どういう仕組みなのだろうか。 PHPやPerl、Ruby、Javaといった言語で開発した一般的なWebシステムの場合、アクセス数が増えるほど必要とするサーバーのメモリー容量が増える。処理要求を受け付けるごとにプロセスやスレッドを生成するからだ。多数のプロセスやスレッドを並列処理させることで、集中する処理要求をさばく仕組みになっている。 node.jsの仕組みは上記と大きく異なり、1コアに1個のプロセス、スレッドで動作する「シングルスレッド」である。だからサーバーのメモリーは少なくて済むのだ。しかし普通に考えれば、シングルスレッドではリクエスト処理が追いつかず、処理待ちが多くなってしまう。node.jsはそうならないように、「非同期I/O処理」という仕組みが備わっている。 ここでいうI/O処理とは、ファイルの読み書き、データベースの読