700字范文,内容丰富有趣,生活中的好帮手!
700字范文 > node启动或编译项目内存溢出

node启动或编译项目内存溢出

时间:2022-09-30 06:02:22

相关推荐

node启动或编译项目内存溢出

问题记录,答案来自/questions/53230823/fatal-error-ineffective-mark-compacts-near-heap-limit-allocation-failed-javas

问题截图:

原因:

可能是node版本过低。可能是代码中存在内存泄漏,死循环等。也可能就是项目太大。

由于node基于V8引擎构建,所以node在运行时会受到内存限制,这本质上是V8的限制。

在一般的后端开发语言中,在基本的内存使用上没有̣什么限制,然而在Node中通过JavaScript 使用内存时就会发现只能使用部分内存(64位系统下约为1.4 GB,32位系统下约为0.7 GB) ————深入浅出nodejs

解决方法:

增大max-old-space-size

对于非 Angular 一般答案:

每次遇到此错误时,可能是由于内存泄漏或 Node.js <= 10 和 Node.js > 10 管理内存的方式之间存在差异。

通常只是增加分配给 Node.js 的内存将允许您的程序运行,但可能无法真正解决真正的问题,节点进程使用的内存仍可能超过您分配的新内存。建议在 Node.js 进程开始运行或更新到 Node.js > 10 时分析内存使用情况。

为了增加内存,在运行 Node.js 进程的终端中:

export NODE_OPTIONS="--max-old-space-size=8192"

需要注意的是,export是linux命令,在windows电脑可以使用set。

其中的值max-old-space-size可以是:[2048, 4096, 8192, 16384]等。

更多示例以进一步说明:

export NODE_OPTIONS="--max-old-space-size=5120" # Increase to 5 GB export NODE_OPTIONS="--max-old-space-size=6144" # Increase to 6 GB export NODE_OPTIONS="--max-old-space-size=7168" # Increase to 7 GB export NODE_OPTIONS="--max-old-space-size=8192" # Increase to 8 GB # and so on... # formula: export NODE_OPTIONS="--max-old-space-size=(X * 1024)" # Increase to X GB# Note: it doesn't have to be multiples of 1024. # max-old-space-size can be any number of memory megabytes (MB) you have available.

查看 max-old-space-size

要查看 max-old-space-size(以 MB 为单位)的当前(不准确但非常接近)值,请在终端中运行

node -e 'console.log(v8.getHeapStatistics().heap_size_limit/(1024*1024))'

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。