gpt4 book ai didi

node.js - max_old_space_size 设置为 4GB,实际上限制为 2GB

转载 作者:太空宇宙 更新时间:2023-11-03 22:12:18 24 4
gpt4 key购买 nike

我正在 Gentoo Linux 64 位下编写 NodeJS 6.3.1 应用程序。在这台机器上,我通常有 16GB 可用内存中的 9GB,以及几乎没有使用的 49GB 交换空间。

我使用以下代码来测试我的node.js应用程序的内存限制:

var arr = []; 
var c=0;
while(arr.push('foo')) {if (++c%100000 == 0) {console.info(process.memoryUsage());}}

在没有额外参数的情况下运行此脚本给 Node ,最后一个内存使用行是这样的:

{ rss: 1032232960, heapTotal: 1015185408, heapUsed: 1008680024 }

现在使用--max_old_space_size=4096运行node.js,最后一个内存使用行是这样的:

{ rss: 2202341376, heapTotal: 2189082624, heapUsed: 2177311480 }

现在限制为 8000:

{ rss: 1934946304, heapTotal: 1921712128, heapUsed: 1909919344 }

我错过了什么?如何将堆增加到 4 或 8GB?

最佳答案

我认为这是V8的限制。它在 64 位计算机上使用的 RAM 不超过 1.7 GB。引自常见问题解答:

Currently, by default v8 has a memory limit of 512mb on 32-bit systems, and 1gb on 64-bit systems. The limit can be raised by setting --max-old-space-size to a maximum of ~1gb (32-bit) and ~1.7gb (64-bit), but it is recommended that you split your single process into several workers if you are hitting memory limits.

关于node.js - max_old_space_size 设置为 4GB,实际上限制为 2GB,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38587346/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com