Наблюдение за моим приложением node.js показало рост потребления оперативной памяти.
Итак, я начал изучать код и выполнять несколько тестов, но не могу понять, как исправить эти утечки и где именноони приходят.
Чтобы проверить и проверить утечки памяти, я запускаю мое приложение с node --expose-gc --inspect index.js
в моем index.js:
setInterval(() => {
// 1. Force garbage collection every time this function is called
try {
global.gc();
} catch (e) {
console.log("You must run program with 'node --expose-gc index.js' or 'npm start'");
process.exit();
}
const { rss, heapUsed, heapTotal } = process.memoryUsage();
console.log(
'rss',
numeral(rss).format('0.0 ib'),
'heapUsed',
numeral(heapUsed).format('0.0 ib'),
'heapTotal',
numeral(heapTotal).format('0.0 ib'),
);
}, 5000);
Я четко вижу, как увеличивается куча после любого действия в моем приложении снимок экрана терминала
С помощью инспектора узлов я делаю несколько снимков экрана и сравниваю их, но не вижу ничего, связанного смой собственный код ( утечка памяти, которая, кажется, происходит из moment.js (в моем коде нет ничего под названием "догадки") ).Например, если бы все мои утечки происходили из зависимостей (я сделал yarn upgrade --latest
)
Было бы действительно полезно, если бы кто-то мог взглянуть на 3 из моих снимков кучи, чтобы помочь мне выяснить источник моих утечек памяти