关于 Node.js 参数 max-old-space-size

本文介绍了 Node.js 中的 `--max-old-space-size` 参数,用于控制 V8 垃圾收集堆的最大大小,以防止内存溢出。当内存消耗接近限制时,V8 的垃圾收集会变得更频繁,可能导致进程崩溃。解决方案包括设置环境变量 `NODE_OPTIONS` 或直接在命令行中指定。文中提供了在不同操作系统下设置环境变量的方法,并建议根据系统内存适当调整该值。
摘要由CSDN通过智能技术生成

Old space是 V8 托管(也称为垃圾收集)堆(即 JavaScript 对象所在的位置)中最大和最可配置的部分,而 --max-old-space-size 标志控制其最大大小。 随着内存消耗接近极限,V8 将花费更多时间在垃圾收集上,以释放未使用的内存。

如果堆内存消耗(即 GC 无法释放的活动对象)超过限制,V8 将使您的进程崩溃(因为缺乏替代方案),因此您不想将其设置得太低。 当然,如果您将其设置得太高,那么 V8 将允许的额外堆使用可能会导致您的整个系统内存不足(并且由于缺乏替代方案而交换或终止随机进程)。

总之,在具有 2GB 内存的机器上,我可能会将 --max-old-space-size 设置为大约 1.5GB 以留出一些内存用于其他用途并避免交换。

当我在应用程序中运行“npm start”时,出现以下错误:

FATAL ERROR: Ineffective mark-compacts near heap limit Allocation failed - JavaScript heap out of memory

大多数在线发布的解决方案都是关于使用 NODE_OPTIONS=“–max-old-space-size=2048” 增加内存。

设置环境变量

NODE_OPTIONS --max-old-space-size 环境变量允许增加节点的最大堆大小。 设置环境变量允许 Node 从您的环境中读取此值,因此我们不需要在每次运行 Node 命令时将此值作为参数传递。 这被设置为一个全局值,并且可以被每个 Node 进程使用。

使

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值