recent SO questionには、多数のcsvファイルを処理中に実行中のOOM条件がまとめられています。イベントキューのイベントを調整する
問題を探しているほど、Node.jsを読み進めているほど、OOMはメモリリークのために起こっていないと確信しますが、私はデータを抑制していないためですシステムに入力します。
コードはすべてのデータを盲目的に吸い込み、各行に対して単一のコールバックイベントを作成します。イベントはメインイベントループに追加され続け、最終的には非常に大きくなり、使用可能なすべてのメモリが使い果たされます。
このシナリオを処理するためのノードの慣用パターンとは何ですか?私はcsvファイルの読み込みを、一度完全になると、ファイルリーダーがより多くのデータを解析するのをブロックする何らかの種類のブロックキューに結びつけるべきですか?大きなデータセットの処理を扱う良い例がありますか?
更新は:違ったと単純にこれを配置するには、ノードは、より速く、それが出力やたるみが(イベントキューのイベントとしてキューに入れられた)メモリに保存されている処理できるよりも、入力を処理することができます。たるみがたくさんあるので、メモリは最終的に使い果たされます。だから問題は、出力を入力レートを調整する慣用的な方法は何ですか?
私の答えが十分な詳細を提供していない場合、サンプルコードを共有するともっと具体的な例ができます。 – Paul
コードは最初の文でリンクされています。ありがとう。 –
私の間違いは、私はそれについて質問されている質問に関連するコードを見に慣れています。私はすぐに私の答えを更新します。 – Paul