node.js 0.2.5会泄漏内存吗?

时间:2010-12-06 21:47:19

标签: memory-leaks node.js

在这个简单的例子中,节点似乎正在泄漏内存。其他人可以确认吗?

https://gist.github.com/a8eadd54d1058bcda796

2 个答案:

答案 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缓冲区中非常快。