Я выполняю профилирование памяти в своем электронном приложении и работаю с флагом --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,
}
}
Спасибо!