Node.js nodejs内存分配失败
我使用解密来解密“MySql”数据。我得到了以下问题: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
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
设置为环境变量