首页 > 解决方案 > 为什么 Node process.memoryUsage 和 Chrome performance.memory 值不同?

问题描述

我正在我的电子应用程序中进行一些内存分析并使用--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
}

如您所见,这些值差异很大,但我希望totalJSHeapSizeand usedJSHeapSizefrom与andperformance.memory相同。为什么它们不同?一个被认为更准确吗?它们是否意味着彼此不同的东西?heapTotalheapUsed

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

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

谢谢!

标签: javascriptnode.jsmemoryelectronchromium

解决方案


推荐阅读