我在节点集群设置中使用来自我的子实例的 process.send() 时发现内存泄漏 .

有问题的代码:

var dataToSend = {
    iterations: k,
    data: output
}
process.send(dataToSend)

output 变量包含一个大型数组(例如1000个索引)的对象,每个对象包含8个数字属性和2个字符串属性

如果我注释 process.send(dataToSend) ,内存泄漏就消失了 .

我已经尝试 null ing outputdataToSend ,然后在启用手动GC的情况下运行节点时强制使用 global.gc() 进行垃圾回收,但似乎没有任何工作,这些子进程的RSS内存大小不断增长 .

似乎将对象传递给 process.send() 以某种方式保留对它的引用,使其无法释放垃圾收集?

任何意见,将不胜感激