这可能听起来很奇怪,但我正在设置--max-old-space-size
选项,我想确保配置到位,这样我就不会遇到运行时错误。
有没有办法在运行时验证内存限制?
答案 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均起作用。