You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

低内存环境编译Node.js遇g++报错:virtual memory exhausted: Cannot allocate memory

解决低内存系统编译Node.js时的内存耗尽问题

针对800MB可用内存系统编译Node.js出现virtual memory exhausted: Cannot allocate memory的问题,给你几个实用的临时解决办法:

  • 临时创建swap分区扩容虚拟内存
    系统物理内存不够时,用swap文件补充虚拟内存:

    # 创建1GB大小的swap文件(可根据需求调整,比如2G就写2G)
    sudo fallocate -l 1G /swapfile
    # 设置安全权限,避免其他用户访问
    sudo chmod 600 /swapfile
    # 格式化为swap分区
    sudo mkswap /swapfile
    # 启用swap
    sudo swapon /swapfile
    

    编译完成后,若不需要swap了,可关闭并删除:

    sudo swapoff /swapfile
    sudo rm /swapfile
    
  • 限制编译并发线程数
    Node.js默认用和CPU核心数一致的线程编译,会快速耗尽内存。强制用单线程编译能大幅降低内存占用:
    先正常执行./configure配置编译参数,再用以下命令编译:

    make -j1
    

    若1线程仍吃力,关掉系统里非必要的后台进程再试。

  • 编译前清理系统缓存
    先释放系统缓存内存,给编译腾空间:

    sudo sync && sudo sysctl -w vm.drop_caches=3
    

    该命令会清理页缓存、目录项和inodes,临时释放一部分空闲内存。

内容的提问来源于stack exchange,提问作者Patronics

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.01 03:41:27