nodejs 设置应用的内存上限 NODE_OPTIONS=–max-old-space-size=8192

文章目录

  • NodeJS应用的内存上限
  • 该内存上限由谁决定?
  • 如何修改该内存上限?
  • 环境变量的修改方式
  • Windows 仅当前窗口有效
  • Windows 永久有效(仅用户级别)
  • Windows 永久有效(系统级别)
  • 类unix系统(Linux/macOS)
  • 通用方式
  • Others
  • 其他相关nodejs参数
  • 如何用命令行打开用户级别的环境变量编辑窗口?
  • NodeJS应用的内存上限

    该内存上限由谁决定?

    NodeJS启动的应用,内存使用是有上限的。
    默认为4GB(不同机器环境可能会有不同)。

    那么,如何自己指定这个内存上限呢(我机器配置足够高,想多分配给该NodeJS应用多一些内存)?

    NodeJS应用使用的内存上限,从环境变量NODE_OPTIONS中读取参数max-old-space-size的值。
    所以修改(指定)该参数的值即可。

    如何修改该内存上限?

    举个例子,将:

    node index.js
    

    修改为:

    set NODE_OPTIONS=%NODE_OPTIONS%;--max-old-space-size=8192
    node index.js
    

    在启动应用前,编辑一个环境变量NODE_OPTIONS,向其追加一个参数--max-old-space-size,值8192表示8192MB。
    (如果该环境变量本来有其他的参数,注意也要加上)。

    当然,你有其他多种方式去修改某个环境变量的值。

    环境变量的修改方式

    Windows 仅当前窗口有效

    cmd中执行 set NODE_OPTIONS=--max-old-space-size=8192
    当本窗口关闭后,该配置失效。

    Windows 永久有效(仅用户级别)

    cmd中执行setx NODE_OPTIONS --max-old-space-size=8192
    或直接在环境变量窗口中编辑用户级别的环境变量。

    命令执行后对本cmd窗口之外的所有环境,即刻生效(本cmd窗口开始运行时,还没配置这个环境变量)。

    Windows 永久有效(系统级别)

    在环境变量窗口中编辑系统级别的环境变量。新增配置:
    name: NODE_OPTIONS
    value: --max-old-space-size=8192

    类unix系统(Linux/macOS)

    export语句
    几种配置文件。
    组合使用。

    通用方式

    没谁愿意记那么多命令。

    Windows/Linux/MacOS系统里怎么设置环境变量,有没有统一的方法?
    没有。
    但是后来有人将不同系统之上的操作封装起来,提供了一个NodeJS库 cross-env
    用于跨平台设置环境变量

    # 全局安装该包(当然你也可以只在当前项目级别安装)
    npm i -g cross-env
    
    node index.js
    # 改成:
    cross-env NODE_OPTIONS=--max-old-space-size node index.js
    

    注意 cross-env xxx=xxx xxx=xxxnode index.js中间是空格,不要加& &&之类的字符(那会导致一开始设置的环境变量在后面的命令中无效,我这样做错过)。

    Others

    其他相关nodejs参数

    --max-http-header-size
    --v8-pool-size
    --huge-max-old-generation-size
    --max-old-space-size
    

    如何用命令行打开用户级别的环境变量编辑窗口?

    rundll32.exe sysdm.cpl,EditEnvironmentVariables
    
    # 即
    C:\Windows\System32\rundll32.exe C:\Windows\System32\sysdm.cpl,EditEnvironmentVariables
    

    来源:锦天

    物联沃分享整理
    物联沃-IOTWORD物联网 » nodejs 设置应用的内存上限 NODE_OPTIONS=–max-old-space-size=8192

    发表评论