Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/vim/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Node.js nodejs内存分配失败_Node.js_Garbage Collection - Fatal编程技术网

Node.js nodejs内存分配失败

Node.js nodejs内存分配失败,node.js,garbage-collection,Node.js,Garbage Collection,我使用解密来解密“MySql”数据。我得到了以下问题: 31681毫秒:标记扫描654.1(666.5)->492.5(509.8)MB,267.5/0.0毫秒 [分配失败][请求旧空间中的GC]。 31839毫秒:标记扫描492.5(509.8)->492.2(506.8)MB,157.5/0.0毫秒 [分配失败][请求旧空间中的GC]。 31985毫秒:标记扫描492.2(506.8)->492.2(497.8)MB,146.2/0.0毫秒 [最后手段gc]。32122毫秒:标记扫描 49

我使用解密来解密“MySql”数据。我得到了以下问题:


31681毫秒:标记扫描654.1(666.5)->492.5(509.8)MB,267.5/0.0毫秒 [分配失败][请求旧空间中的GC]。
31839毫秒:标记扫描492.5(509.8)->492.2(506.8)MB,157.5/0.0毫秒 [分配失败][请求旧空间中的GC]。
31985毫秒:标记扫描492.2(506.8)->492.2(497.8)MB,146.2/0.0毫秒 [最后手段gc]。32122毫秒:标记扫描 492.2(497.8)->492.2(497.8)MB,136.8/0.0毫秒[最后的gc]。

它是关于什么以及如何修复它


提前感谢所有使用以下参数到节点为脚本查找更多内存:--max\u old\u space\u size=x

例如:

node --max_old_space_size=8000 yourscript.js
这将为您的脚本分配大约8GB的空间。最终,这仍然不够,您应该在较小的块中解密SQL,并使用物理驱动器而不是RAM内存


希望这有帮助

我遇到了这个问题,但是通过为我的项目删除全局安装的electron并在本地安装electron,这个错误就消失了。

正确的解决方案

你的node.js应用程序内存太多。这通常是不好的迹象,需要长期调查。要找到执行此操作的确切代码段,您可能需要查看node.js评测技术。关于这个的一些文章

快速解决方案

在某些情况下,快速解决是我们想要的。对于这种情况,正如Cryptic Pug正确指出的,我们可以增加JS内存分配限制。如何做到这一点(根据您的需要)几乎没有选择

  • 直接将参数传递给
    节点
    node--max\u old\u space\u size=4096 app.js
    
  • 使用环境变量
    NODE\u OPTIONS=--max\u old\u space\u size=4096
    node app.js
    
  • 使用文件。将以下内容放入
    .npmrc
    本地或全局文件
    node-options=--max_old_space_size=4096
    
    然后运行脚本
    node app.js
    

  • 您试图解密的数据有多大?你需要找出是什么在你的node.js应用程序中使用了太多的内存,或者,你需要增加node.js应用程序可用的内存量。FYI堆快照将帮助您确定内存消耗的对象。对于容器中需要此设置的任何人,您也可以将
    节点\u选项=--max\u old\u space\u size=8000
    设置为环境变量