Node.js 堆内存不足

Shiv Yadav 2023年1月30日 2022年5月13日
  1. 更改环境的 Node.js 内存限制
  2. 使用 npm install 堆内存
Node.js 堆内存不足

本文将帮助你解决使用 Node.js 时 JavaScript 中的内存问题。

当我们一次加载太多数据时会发生此错误。如果你尝试加载大于可用内存的数据集,你将耗尽内存并获得 Fatal ERROR

另一个大问题是可怕的内存泄漏。你的应用程序通常可以放入内存中,但是当错误导致分配保持时,你的内存使用量会随着时间的推移而增加。

长时间运行的应用程序可能需要数周或数月的时间,但最终,内存会耗尽,你的应用程序将停止运行。

Node.js 中默认设置了内存限制,以防止程序消耗过多内存而导致整个系统崩溃。

根据你的系统版本和架构,结果会有所不同(32 位或 64 位)。

解决此问题的最快方法是增加 Node 的 RAM 限制。使用 Node.js v8,你可以使用 -max-old-space-size 标志设置以兆字节为单位的限制,如下所示:

node --max-old-space-size=4096 your_fileName.js

4 GB 内存由数字 4096 表示。你可以将限制设置为你喜欢的任何内容,但不要使用所有可用内存;否则,你的系统可能会崩溃。

或者,你可以在环境变量中设置标志,例如:

NODE_OPTIONS="--max-old-space-size=4096" your_fileName.js

更改环境的 Node.js 内存限制

如果你希望更改整个环境的 Node.js 内存限制(.bashrc、.bash 配置文件、.zshrc 等),则必须在环境的配置文件中设置以下变量。

在配置文件中包含以下行:

~/.bashrc
export NODE_OPTIONS=--max_old_space_size=4096

使用 npm install 堆内存

如果你在使用 npm 或 yarn 安装包时遇到问题,可以通过如下方式安装包来临时绕过内存限制:

node --max-old-space-size=4096 $(which npm) install -g nextawesomelib
Author: Shiv Yadav
Shiv Yadav avatar Shiv Yadav avatar

Shiv is a self-driven and passionate Machine learning Learner who is innovative in application design, development, testing, and deployment and provides program requirements into sustainable advanced technical solutions through JavaScript, Python, and other programs for continuous improvement of AI technologies.

LinkedIn