Поиск утечек памяти в моем приложении Node.js - PullRequest
0 голосов
/ 17 апреля 2019

Наблюдение за моим приложением 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 из моих снимков кучи, чтобы помочь мне выяснить источник моих утечек памяти

...