📜  如何解决 Node.js 中的“Process out of Memory Exception”?

📅  最后修改于: 2022-05-13 01:56:32.995000             🧑  作者: Mango

如何解决 Node.js 中的“Process out of Memory Exception”?

在本文中,我们将学习如何解决 NodeJS 中的ProcessOutOfMemory异常。 Process out of Memory Exception是您的node.js程序内存不足时发生的异常。当我们的程序在执行时超出分配给我们程序的默认内存时,就会发生这种情况。

可以通过使用以下命令将分配给我们程序的默认内存增加到所需内存来解决此异常。

句法:

node --max-old-space-size= index.js

参数:

  • SPACE_REQD:传递增加的内存空间(以兆字节为单位)。

示例:首先,让我们重新创建此异常,然后我们将了解此异常背后的原因。

index.js
let items = [];
  
for (let i = 0; i < 99999995; i++) {
    items.push(i);
}
  
console.log(items);


index.js
let items = [];
  
for (let i = 0; i < 99999995; i++) {
    items.push(i);
}
  
console.log(items);


index.js
let items = [];
  
for (let i = 0; i < 90000000; i++) {
    items.push("GeeksforGeeks");
}
  
console.log(items);


使用以下命令运行index.js文件。

node index.js

输出:我们会得到一个致命错误,说FatalProcessOutOfMemory ,如下所示。

注意:分配给 node.js 程序的默认内存在32 位系统上为512MB ,在64 位系统上为1024MB (以上程序在 64 位系统上运行)。

示例 1:在下面的示例中,我们将内存空间要求增加到2048MB2GB 。使用以下命令运行 JS 文件(在我的例子中为index.js )。

句法:

node --max-old-space-size=2048 index.js

现在我们可以看到,我们的程序运行良好,没有任何异常。如果您使用标准的“ node index.js ”命令运行以下代码,它将抛出相同的异常: FatalProcessOutOfMemory ,因为我们的程序超出了分配给它的默认内存空间。

所以我们使用–max-old-space-size命令来增加分配的内存空间,这样我们的程序就不会耗尽内存。

index.js

let items = [];
  
for (let i = 0; i < 99999995; i++) {
    items.push(i);
}
  
console.log(items);

输出:

示例 2:在下面的示例中,我们将内存空间要求增加到3072MB3GB 。使用以下命令运行 JS 文件(在我的例子中为index.js )。

句法:

node --max-old-space-size=3072 index.js

如果您使用标准的“ node index.js ”命令运行以下代码,它将抛出相同的异常: FatalProcessOutOfMemory ,因为我们的程序超出了分配给它的默认内存空间。

所以我们使用–max-old-space-size命令来增加分配的内存空间,这样我们的程序就不会耗尽内存。

index.js

let items = [];
  
for (let i = 0; i < 90000000; i++) {
    items.push("GeeksforGeeks");
}
  
console.log(items);

输出: