确保NODE_OPTIONS --max-old-space-size正常工作

时间:2018-05-31 20:04:21

标签: node.js memory memory-management

这可能听起来很奇怪,但我正在设置--max-old-space-size选项,我想确保配置到位,这样我就不会遇到运行时错误。

有没有办法在运行时验证内存限制?

2 个答案:

答案 0 :(得分:3)

因此,要验证您实际使用了多少内存,可以调用

process.memoryUsage()

将返回

{
  rss: 4935680,
  heapTotal: 1826816,
  heapUsed: 650472,
  external: 49879
}

heapTotal指的是可用内存。 heapUsed是指使用的堆内存,external是指绑定到V8管理的JavaScript对象的C ++对象的内存使用情况。 rss,Resident Set Size,是主存储器设备占用的空间量 https://nodejs.org/api/process.html

答案 1 :(得分:0)

要使用兆字节获取堆大小,请使用

v8.getHeapStatistics().total_available_size / 1024 / 1024

示例1

  

node --max-old-space-size = 256

     

v8.getHeapStatistics()。total_available_size / 1024/1024

     

284.47106170654297

示例2

  

node --max-old-space-size = 512

     

v8.getHeapStatistics()。total_available_size / 1024/1024

     

544.9713745117188

示例3

  

export NODE_OPTIONS =-max-old-space-size = 1024

     

节点

     

v8.getHeapStatistics()。total_available_size / 1024/1024

     

1065.4709014892578

因此,如我们所见,命令行arg和env变量NODE_OPTIONS均起作用。