为什么 Node process.memoryUsage 和 Chrome Performance.memory 值不同?

Gar*_*son 5 javascript memory chromium node.js electron

我正在我的电子应用程序中进行一些内存分析并使用该--enable-precise-memory-info标志运行,我发现有两种方法可以获取有关当前内存分配的信息: Nodesprocess.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
}
Run Code Online (Sandbox Code Playgroud)

正如您所看到的,这些值差异很大,但我希望 和totalJSHeapSizefromusedJSHeapSize与和performance.memory相同。为什么它们不同?是否被认为更准确?它们的含义彼此不同吗?heapTotalheapUsed

对于更多上下文,我在电子浏览器窗口的开发工具中运行这两个命令,并使用以下选项打开浏览器窗口:

{
  // ...
  webPreferences: {
    nodeIntegration: true,
    backgroundThrottling: false,
  }
}
Run Code Online (Sandbox Code Playgroud)

谢谢你!