在这个简单的例子中,节点似乎正在泄漏内存。其他人可以确认吗?
答案 0 :(得分:1)
我不小心为每个已完成的请求发送了2个新请求。一个接一个,一个接近。
答案 1 :(得分:1)
我在0.3.1,GC正常在这里踢。
使用node --trace_gc test.js
,这几乎达不到5mb:
ivo@ivo:~/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.
另一场比赛:
ivo@ivo:~/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.
对于GC来说,V8非常聪明,你可能想要注意的一件事是你不要在全局列表等中推送一些引用,因为这样可以保留引用中的所有内容。< / p>
如果您真的处理大量数据,请考虑使用Buffer
并动态重新分配,特别是在0.3.x缓冲区中非常快。