Node.js(和chrome V8)中的内存限制

问题描述 投票:56回答:4

在网络的许多地方,你会看到:

节点进程的内存限制是多少?

和答案:

目前,默认情况下,V8在32位系统上的内存限制为512mb,在64位系统上的内存限制为1GB。通过将--max-old-space-size设置为最大~1gb(32位)和~1.7gb(64位)可以提高限制,但建议您将单个进程分成几个工作程序如果你达到内存限制。

有人可以证实这是因为Node.js似乎经常更新吗?

更重要的是,在不久的将来会出现这种情况吗?

我想编写可能需要处理4gb javascript对象的JavaScript代码(速度可能不是问题)。

如果我不能在Node中做到这一点,我将最终在java(在64位机器上)做,但我宁愿不做。

memory-management node.js
4个回答
21
投票

对于一些使用Node.js的人来说这是一个很大的问题,并且有好消息。对于64位,V8的新内存限制现在是未知的(未经测试),并且在32位环境中可以提升到32位地址空间。

在这里阅读更多:http://code.google.com/p/v8/issues/detail?id=847


6
投票

我现在正在Ubuntu linux上运行proc,它有明确的内存泄漏,节点0.6.0正在推动8gb。认为这是处理:)。


2
投票

启动nodejs应用程序,堆内存为8 GB

node --max-old-space-size = 8192 app.js.


1
投票

看起来像是真的。当我试图在缓冲区var buf = new Buffer(50*1024*1024);中分配50 Mb字符串时,我得到致命错误FATAL ERROR: CALL_AND_RETRY_2 Allocation failed - process out of memory。我在进程监视器中修复了大约457 Mb的nodejs内存使用量。

© www.soinside.com 2019 - 2024. All rights reserved.