解决node运行内存进程不足(溢出)问题

您所在的位置:网站首页 nodejs内存限制 解决node运行内存进程不足(溢出)问题

解决node运行内存进程不足(溢出)问题

2023-12-26 11:23| 来源: 网络整理| 查看: 265

背景

今天在启动项目的时候,突然发现项目启不起来了,报错如下

image.png 当时吓得老夫菊花一紧,百度了一下大概意思是项目的运行内存已经超过了node的限制,或者代码存在内存泄漏的风险,node官网上也给了这个case的说明

Generating V8 snapshots takes time and memory (both memory managed by the V8 heap and native memory outside the V8 heap). The bigger the heap is, the more resources it needs. Node.js will adjust the V8 heap to accommodate the additional V8 heap memory overhead, and try its best to avoid using up all the memory available to the process. When the process uses more memory than the system deems appropriate, the process may be terminated abruptly by the system, depending on the system configuration. 来源:nodejs.p2hp.com/api/v19/cli…

大概意思就是当进程使用的内存超过系统认为合适的内存时,系统可能会突然终止进程,具体取决于系统配置。

然后打开活动监视器看了一下打包时内存的飙升进度

没启动之前是这样的

image.png 启动之后是这样的

image.png

解决

目前网上解决的方法分为两种,一种是在启动项目的时候设置node堆内存大小,另一个就是通过increase-memory-limit插件工具来实现,这里我们实现用的是第一种。

--max-old-space-size 是 Node.js 的一个命令行参数,用于设置 V8 引擎的堆内存大小。默认情况下,Node.js 会为 V8 引擎分配 512MB 的堆内存。如果你的应用程序需要更多的内存,可以使用 --max-old-space-size 参数来增加堆内存的大小。

其实也很简单,就是在我们启动命令行的时候,把node命令加一个--max-old-space-size=你想要增加的大小,由于楼主的项目是umi搭建,所以遇到了一点问题,因为在script里面没有直接用node命令,所以我们就需要找到umi的启动文件,也就是node_modules/umi/bin/umi.js这个路径文件 我们只需要在命令行用node来启用这个文件,并且加上--max-old-space-size即可启动。



【本文地址】


今日新闻


推荐新闻


    CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3