Cem*_*mre 7 memory memory-management node.js
这可能听起来很奇怪,但我正在设置--max-old-space-size选项,我想确保配置到位,以免出现运行时错误。
有没有办法在运行时验证内存限制?
And*_*rey 10
要获得以兆字节为单位的堆大小,请使用
const v8 = require('v8')
v8.getHeapStatistics().total_available_size / 1024 / 1024
Run Code Online (Sandbox Code Playgroud)
示例 1
节点 --max-old-space-size=256
v8.getHeapStatistics().total_available_size / 1024 / 1024
284.47106170654297
示例 2
节点 --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
所以,正如我们所看到的,命令行参数和环境变量 NODE_OPTIONS 都可以工作。
因此,要验证您实际使用了多少内存,可以调用
process.memoryUsage()
Run Code Online (Sandbox Code Playgroud)
这将返回
{
rss: 4935680,
heapTotal: 1826816,
heapUsed: 650472,
external: 49879
}
Run Code Online (Sandbox Code Playgroud)
heapTotal 指的是可用内存。heapUsed 指的是已使用的堆内存,external 指的是绑定到 V8 管理的 JavaScript 对象的 C++ 对象的内存使用情况。rss,Resident Set Size,是主存设备中占用的空间量 https://nodejs.org/api/process.html
| 归档时间: |
|
| 查看次数: |
6499 次 |
| 最近记录: |