99网
您的当前位置:首页Node.js 内存溢出

Node.js 内存溢出

来源:99网

Node 并不像其他后端语言一样,对内存的使用没有,在 Node 中使用内存,只能使用系统中的一部分内存, 位系统下约为 1.4GB,32 位系统下约为 0.7GB,这归咎于 Node 使用了 V8 引擎,这是 V8 引擎默认的堆大小。

Node 本身有内存,而每次内存下降到一定程度时就会主动释放,下降幅度约为 1.4GB。

可以通过参数来设置默认的堆。

  • node --max-new-space-size=1024,app.js,单位为 KB
  • node --max-old-space-size=2048,app.js,单位为 MB

直接在 package.json 启动脚本中修改相关参数,设置无效。因为内存在启动的时候就已经固定了,后期不够用不会自动扩容,在程序运行中可以通过 V8 这个模块来进行查看内存设置。

eggjs 框架的问题:使用了 egg-script 进行启动,传递 node 命令参数需要另外的写法,直接写是不生效的,在参数前加 --node-options 即可。

  • 解决办法:修改 max-old-space-size 参数来修改堆栈大小
  • node 写法:node --max-old-space-size=2048,app.js
  • eggjs写法:egg-script start --node-options–max-old-space-size=2048,单位为 MB

因篇幅问题不能全部显示,请点此查看更多更全内容