我怎样才能提高Node.js的最大调用堆栈大小我怎样才能提高Node.js的最大调用堆栈大小(How

2019-06-14 14:23发布

这是关于节点的错误信息读取的RangeError其他问题不同:超过了,我知道为什么我收到此错误信息的最大调用堆栈大小 。 这是怎么回事,因为我递归,其实递归不少。

谢谢。

Answer 1:

node --help

node --max-stack-size=val

更新:作为评论表明,即使帮助文本还列出了--max-stack-size选项,在节点v0.10.x你需要使用--stack-size来代替。

node --stack-size=val


Answer 2:

在节点版本5和6,我已验证的选项来设置最大堆栈大小为“--stack_size”(带有下划线):

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

为了增加最大堆栈大小,只是发出类似:

$ node --stack_size=1200

正如其他人所指出的,要知道,增加该值可能会导致分段错误。 我有6个版本的最大安全值是1361,但似乎与5版本更高。

纵观大局,增加堆栈大小可能不会解决你所有的问题。 当节点编写递归函数,最好的策略是把它们写在尾递归的 方式 ,因为第6版支持适当的尾调用。 这将消除堆栈大小溢出。



文章来源: How can I increase the maximum call stack size in Node.js