Почему значения Node process.memoryUsage и Chrome performance.memory отличаются? - PullRequest
1 голос
/ 25 февраля 2020

Я выполняю профилирование памяти в своем электронном приложении и работаю с флагом --enable-precise-memory-info и вижу, что есть два способа получить информацию о текущем распределении памяти: узлы process.memoryUsage() и Chromes performance.memory. Вот значения, возвращаемые при каждом вызове:

// process.memoryUsage()
{
  "rss": 631332864,                  // ~ 602.09 MB
  "heapTotal": 97619968,             // ~ 93.10 MB
  "heapUsed": 91908280,              // ~ 87.65 MB
  "external": 83524574               // ~ 79.66 MB
}

// performance.memory
{
  "totalJSHeapSize": 177817582,      // ~ 169.58 MB
  "jsHeapSizeLimit": 1107296256,     // 1056 MB
  "usedJSHeapSize": 175333878        // ~ 167.21 MB
}

Как вы можете видеть, значения значительно различаются, но я ожидаю, что значения totalJSHeapSize и usedJSHeapSize из performance.memory будут такими же, как heapTotal и heapUsed. Почему они разные? Один считается более точным? Они означают что-то отличное друг от друга?

Для большего контекста я запускаю обе команды в инструментах разработки окна электронного браузера и открываю окно браузера со следующими параметрами:

{
  // ...
  webPreferences: {
    nodeIntegration: true,
    backgroundThrottling: false,
  }
}

Спасибо!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...