NodeJS - 如何增加内存堆大小?

3
我想增加内存堆大小,但每次尝试都失败了。我尝试安装包npm i increase-memory-limit,但它没有起作用。在安装后运行命令increase-memory-limit,但我仍然遇到与之前相同的崩溃。
目前我在Windows 10上使用PyCharm IDE编写我的NodeJS代码,希望这有所帮助。
编辑:
FATAL ERROR: CALL_AND_RETRY_LAST Allocation failed - JavaScript heap out of memory
 1: 00007FF686C0094F napi_wrap+124431
 2: 00007FF686BA2696 v8::base::CPU::has_sse+34502
 3: 00007FF686BA3356 v8::base::CPU::has_sse+37766
 4: 00007FF6873A6F4E v8::Isolate::ReportExternalAllocationLimitReached+94
 5: 00007FF68738EF91 v8::SharedArrayBuffer::Externalize+833
 6: 00007FF68725C85C v8::internal::Heap::EphemeronKeyWriteBarrierFromCode+1436
 7: 00007FF687258890 v8::internal::Heap::AddRetainedMap+2608
 8: 00007FF68727289E v8::internal::Factory::AllocateRawFixedArray+94
 9: 00007FF687279C34 v8::internal::Factory::NewFixedArrayWithFiller+52
10: 00007FF687279BF1 v8::internal::Factory::NewFixedArray+65
11: 00007FF68714A98F v8::internal::FeedbackNexus::ic_state+56767
12: 00007FF68715C6C5 v8::Message::GetIsolate+14101
13: 00007FF687168600 v8::Message::GetIsolate+63056
14: 00007FF68714438C v8::internal::FeedbackNexus::ic_state+30652
15: 00007FF68700E8AA v8::internal::OrderedHashMap::ValueAt+62122
16: 00007FF6877D2C6D v8::internal::SetupIsolateDelegate::SetupHeap+567949
17: 000002A6CAD8B865 

1
请解释一下它是如何失败的,以及您采取了哪些步骤来引发这个问题。您可以尝试使用node的max-old-space-size选项来解决问题。您可以参考https://medium.com/@vuongtran/how-to-solve-process-out-of-memory-in-node-js-5f0de8f8464c。 - abondoa
我为我所在的一家小公司开发了一个脚本,并在使用npm nexe制作的exe文件交给研究团队后,他们告诉我脚本不能长时间运行,因为它们得到了与我所提出的问题相关的错误。我自己测试了这个脚本,但没有超过10或20分钟,并且我不知道这个错误,现在我正在尝试找出需要做什么。希望我已经更清楚地表达了我的问题。 - chipswithdrips
自 2017 年 8 月发布的 Node.js v8.0 起,您现在可以使用 NODE_OPTIONS 环境变量来全局设置 max_old_space_size。查看此帖子: https://dev59.com/dF8e5IYBdhLWcg3wF3SV#48895989 - Tim
如果您将错误信息复制粘贴到问题中,可能会有人能够给您更具体的帮助。 - Tim
抱歉回复晚了,无论如何,我刚刚更新了帖子,包括错误信息。 - chipswithdrips
@chipswithdrips 我相信你可能需要改变使用nexe的方式。我自己对它并不太熟悉,但是在构建过程中,你可能需要添加--enableNodeCli标志(以及--build标志),然后在运行实际的exe文件时添加例如--max_old_space_size=5000。请参考以下链接进行启发:https://github.com/nexe/nexe/issues/383 - abondoa
1个回答

4

启动 Node 服务器时,请检查正在运行的脚本,应该类似于 node index.js 或类似的命令。

不太确定在 PyCharm 中运行 Node 是怎样的,但是可以使用选项 --max-old-space-size 帮助你。

因此,建议尝试使用以下命令:

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


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接