Я вижу утечку памяти при использовании process.send()
из моих дочерних экземпляров в настройке кластера узлов.
Код, о котором идет речь:
var dataToSend = {
iterations: k,
data: output
}
process.send(dataToSend)
Переменная output
содержитбольшой массив (например, 1000 индексов) объектов, каждый из которых содержит 8 числовых свойств и 2 строковых свойства
Если я закомментирую process.send(dataToSend)
, утечка памяти исчезнет.
Я пытался null
ing output
, dataToSend
, а затем форсировать сборку мусора с помощью global.gc()
при запуске узла с включенным ручным сборщиком мусора, но, похоже, ничего не работает, у этих дочерних процессов объем памяти RSS просто постоянно увеличивается.
Похоже, что передача объекта в process.send()
каким-то образом сохраняет ссылку на него, оставляя его невозможным освободить для сбора мусора?
Любой совет будет оценен