この単純な例では、ノードにメモリがリークしているようです。他の誰も確認できますか?node.js 0.2.5リークメモリはありますか?
https://gist.github.com/a8eadd54d1058bcda796
この単純な例では、ノードにメモリがリークしているようです。他の誰も確認できますか?node.js 0.2.5リークメモリはありますか?
https://gist.github.com/a8eadd54d1058bcda796
私は偶然、各完了した要求のための2つの新しい要求を送信しました。終わりに1つ、終わりに1つ。
私は0.3.1にあり、GCは通常ここでキックします。 node --trace_gc test.js
を使用して
、これはほとんど到達しない5メガバイト:
[email protected]:~/Desktop$ node --trace_gc test.js
Scavenge 0.9 -> 1.0 MB, 1 ms.
Scavenge 1.9 -> 1.8 MB, 0 ms.
Scavenge 2.6 -> 1.9 MB, 1 ms.
Mark-sweep 2.9 -> 1.8 MB, 6 ms.
Scavenge 2.8 -> 1.8 MB, 0 ms.
Scavenge 2.9 -> 1.9 MB, 0 ms.
別の実行:それはGC'ingに来るとき
[email protected]:~/Desktop$ node --trace_gc test.js
Scavenge 0.9 -> 1.0 MB, 1 ms.
Scavenge 1.9 -> 1.8 MB, 0 ms.
Scavenge 2.6 -> 1.9 MB, 1 ms.
Mark-sweep 1.9 -> 1.8 MB, 4 ms.
Mark-sweep 1.8 -> 1.7 MB, 3 ms.
Mark-compact 1.7 -> 1.7 MB, 11 ms.
Scavenge 2.3 -> 1.8 MB, 0 ms.
Scavenge 2.3 -> 1.8 MB, 0 ms.
Scavenge 2.3 -> 1.8 MB, 0 ms.
Scavenge 2.0 -> 1.9 MB, 0 ms.
Mark-sweep 1.9 -> 1.6 MB, 3 ms.
Mark-compact 1.6 -> 1.6 MB, 10 ms.
V8は非常に知的で、一つのことあなたがあるために外を見るしたいかもしれませんグローバルリストなどで参照をプッシュしないようにします。これは、その参照の内部にあるものをすべて保持するためです。
実際に大量のデータを処理する場合は、Buffer
の使用を検討し、特に0.3.xのバッファは非常に高速です。
ありがとうございます – richcollins
あなた自身のものであっても、これを受け入れられた回答としてフラグを立てる必要があります。 – Kynth