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

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

在本文中,我们将学习如何解决Node.js中的 ProcessOutOfMemory 异常。

当你的 node.js 程序内存溢出时,会出现进程内存异常。这是因为在执行过程中,我们的程序超出了默认分配给程序的内存。

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

语法:

node --max-old-space-size =<SPACE_REQD> index.js

参数:

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

示例: 首先,让我们重新创建这个异常,然后我们将理解这个异常的原因。

index.js

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

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

node index.js

输出: 我们将得到一个 致命错误 ,错误信息为 内存过程致命 ,如下所示。

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

注意: 默认情况下,分配给node.js程序的内存是 512MB (32位系统)和 1024MB (64位系统,在这个示例中是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);

输出:

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

语法:

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);

输出:

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

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程