How can I increase the maximum call stack size in Node.js

爱⌒轻易说出口 提交于 2021-01-27 12:26:55

问题


This is different to other questions regarding an error message in Node that reads RangeError: Maximum call stack size exceeded in that I know exactly why I'm getting this error message. It's happening because I'm recursing, recursing quite a lot in fact.

Thanks.


回答1:


From node --help:

node --max-stack-size=val

Update: as the comments indicate, even though the help text still lists the --max-stack-size option, in node v0.10.x you need to use --stack-size instead.

node --stack-size=val



回答2:


In node version 5 and 6, I have verified that the option to set maximum stack size is "--stack_size" (with an underscore):

$  node --v8-options
[...]
--stack_size (default size of stack region v8 is allowed to use (in kBytes))
      type: int  default: 984

To increase the maximum stack size, just issue something like:

$ node --stack_size=1200

As noted by others, be aware that increasing this value may lead to a segmentation fault. The maximum safe value for me with version 6 is 1361, but seems higher with version 5.

Looking at the bigger picture, increasing stack size may not solve all your issues. When writing recursive functions in node, your best strategy is to write them in a tail-recursive manner, since version 6 supports proper tail calls. This will eliminate stack size overflows.



来源:https://stackoverflow.com/questions/61370901/nodejs-and-callstack-size-protection

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!