从节点集群设置中的子实例中使用process.send()
时,我看到内存泄漏。
相关代码:
var dataToSend = {
iterations: k,
data: output
}
process.send(dataToSend)
output
变量包含一个大型对象数组(例如,索引数为1000),每个对象包含8个数字属性和2个字符串属性
如果我将process.send(dataToSend)
注释掉,则内存泄漏消失了。
我尝试过null
,output
,dataToSend
,然后在启用了启用手动GC的节点上运行时,强制使用global.gc()
进行垃圾收集,但似乎没有任何效果,这些子进程的RSS内存大小只是不断增长。
似乎将对象传递给process.send()
仍以某种方式保留了对它的引用,从而使其无法释放以进行垃圾收集?
任何建议将不胜感激