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