cha*_*cko 61 memory-management node.js
在网络的许多地方,你会看到:
节点进程的内存限制是多少?
和答案:
目前,默认情况下,v8在32位系统上的内存限制为512mb,在64位系统上的内存限制为1GB.通过将--max-old-space-size设置为最大~1gb(32位)和~1.7gb(64位)可以提高限制,但建议您将单个进程分成几个工作程序如果你达到内存限制.
可以有人确认这是因为node.js似乎经常更新??? *更重要的是,在不久的将来会是这样的吗?*
我想编写javascript代码,可能需要处理4gb的javascript对象(速度可能不是问题)
如果我不能在节点中做到这一点,我将最终在java(在64位机器上)做,但我宁愿不...
Sam*_*nen 21
对于一些使用Node.js的人来说这是一个很大的问题,并且有好消息.对于64位,V8的新内存限制现在是未知的(未经测试),并且在32位环境中可以提升到32位地址空间.
在此处阅读更多内容:http://code.google.com/p/v8/issues/detail?id = 847
Piy*_*iya 17
以 8 GB 的堆内存启动 nodejs 应用程序
node --max-old-space-size=8192 app.js
Run Code Online (Sandbox Code Playgroud)
请参阅节点命令行选项文档或运行:
node --help --v8-options
Run Code Online (Sandbox Code Playgroud)
看起来好像是真的。当我尝试在缓冲区中分配 50 Mb 字符串时:
var buf = new Buffer(50*1024*1024);
Run Code Online (Sandbox Code Playgroud)
我有一个错误:
FATAL ERROR: CALL_AND_RETRY_2 Allocation failed - process out of memory
Run Code Online (Sandbox Code Playgroud)
同时,进程监视器中 Node.js 使用了大约 457 Mb 的内存。