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


    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 进程使用。

    使用下列命令行设置环境变量:

    export NODE_OPTIONS=“–max-old-space-size=8192”

    如果将此命令放在终端会话中,则需要在每个新会话中执行此操作。 为避免这种情况,您可以将其放入 shell 脚本文件中,终端会自动为您加载它。

    .bashrc 文件存在于 Linux 环境中,大多数评论都将重新加载 bash 作为一种快速方式,例如 source ~/.bashrc ,它在当前会话中加载环境变量。 可以随时重新启动终端以重新加载,但前者是首选! 同样,如果使用 Windows,请忽略这一点。

    命令行方式

    命令行:

    node --max_old_space_size=5000 yourapp.js

    第三种方式,基于项目

    "scripts": 
    {
        "start": "cross-env NODE_OPTIONS=--max-old-space-size=8192 webpack"
    }
    
    • 1
    • 2
    • 3
    • 4

    先自我介绍一下,小编13年上师交大毕业,曾经在小公司待过,去过华为OPPO等大厂,18年进入阿里,直到现在。深知大多数初中级java工程师,想要升技能,往往是需要自己摸索成长或是报班学习,但对于培训机构动则近万元的学费,着实压力不小。自己不成体系的自学效率很低又漫长,而且容易碰到天花板技术停止不前。因此我收集了一份《java开发全套学习资料》送给大家,初衷也很简单,就是希望帮助到想自学又不知道该从何学起的朋友,同时减轻大家的负担。添加下方名片,即可获取全套学习资料哦

  • 相关阅读:
    一组完整的读Json配置信息的辅助函数
    linux(全志F1C100S/F1C200S)系列02:移植LCD st7789驱动,LVGL8.3移植
    fpga入门 串口定时1秒发送1字节
    YOLOPv2开源,目标检测&区域分割,多任务版本
    【Python百日进阶-WEB开发】Day174 - Django案例:06用户注册后端逻辑
    ue4学习日记4(植被,光照,光束遮挡,天空球)
    【2023最新Java面试宝典】—— SpringBoot面试题(44道含答案)
    PTA:7-1 线性表的合并
    dom——style的操作
    持续交付-Pipeline入门
  • 原文地址:https://blog.csdn.net/web15085599741/article/details/126080945