为了账号安全,请及时绑定邮箱和手机立即绑定

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

/ 猿问

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

料青山看我应如是 2019-11-15 10:43:18

在网络上的许多地方,您都会看到:


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


和答案:


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


有人可以确认是这种情况吗,因为Node.js似乎经常更新?


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


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


如果无法在Node中执行此操作,最终我将在Java(在64位计算机上)执行操作,但我宁愿不这样做。


查看完整描述

4 回答

?
九州编程

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


在此处了解更多信息:http : //code.google.com/p/v8/issues/detail?id=847


查看完整回答
反对 回复 2019-11-15
?
慕容4345310

我现在在具有确定的内存泄漏的Ubuntu Linux上运行proc,而节点0.6.0正在推送8gb。认为它已处理:)。


查看完整回答
反对 回复 2019-11-15
?
潇湘沐

使用8 GB的堆内存启动nodejs应用


节点--max-old-space-size = 8192 app.js


查看完整回答
反对 回复 2019-11-15
?
慕盖茨4494581

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


查看完整回答
反对 回复 2019-11-15

添加回答

回复

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信