これはおそらく初心者の質問ですが、検索しても満足のいく答えが見つかりませんでした。
node.js アプリケーションが大量のメモリを消費しているようです。各プロセスは約 100MB を消費します。nodejs 自体は、プロセスごとに最大 30MB のメモリ フットプリントを持っていると聞きました。
アプリケーションは、MongoDB を基盤とする JSON API です。多くの場合、1 つの API リクエストが多くのデータベース リクエストを引き起こし、主に子関係を設定します。典型的なクエリは次のようなものです: (1) クエリ条件に基づいて objectId の配列を取得し、(2) 各 objectId を繰り返し、データベースにクエリを発行してデータを入力します (ハイドレーションと呼ばれるものもあります)。
コードは async.js を多用しています。メモリ使用量をプロファイリングしようとしましたが、async.js が多くのメモリを使用しているようですが、メモリ リークの兆候はありません。async.js の作成者は、ストリーム ライブラリ highland.js ( http://highlandjs.org/ ) も発表しました。私は nodejs ストリームを初めて使用しますが、これが async.js を置き換える可能性のあるツールであるかどうかに興味がありますか? Webサイトに記載underscore
があるようですが、私は主async.js
に非同期処理に使用しています。
ありがとう!