【发布时间】:2013-04-10 23:06:13
【问题描述】:
v0.10.4
这是导致内存使用量不断增加的简单循环:
function redx(){
setTimeout(function(){ redx() },1000);
console.log('loop');
}
redx();
我做错了什么??
编辑
好的,刚刚尝试了在范围内引用超时对象的建议,似乎垃圾收集确实在大约 40 秒后启动,这是来自 TOP 的缩写日志:
3941 根 20 0 32944 7284 4084 S 4.587 3.406 0:01.32 节点
3941 根 20 0 32944 7460 4084 S 2.948 3.489 0:01.59 节点
3941 根 20 0 32944 7516 4084 S 2.948 3.515 0:01.68 节点
3941 根 20 0 33968 8400 4112 S 2.948 3.928 0:02.15 节点
3941 根 20 0 33968 8920 4112 S 3.275 4.171 0:02.98 节点
3941 根 20 0 33968 8964 4112 S 2.948 4.192 0:03.07 节点
3941 根 20 0 33968 9212 4112 S 2.953 4.308 0:03.16 节点
3941 根 20 0 33968 9212 4112 S 2.953 4.308 0:03.25 节点
3941 根 20 0 33968 9212 4112 S 3.276 4.308 0:03.35 节点
3941 根 20 0 33968 9212 4112 S 2.950 4.308 0:03.44 节点
【问题讨论】:
-
难以置信,我昨天一直在想。我的猜测是 Node 不会收集匿名函数的闭包。
-
你正在使用什么操作系统?
-
我在 ARCH 下测试这个。