如何增加Node.js中的最大调用堆栈大小

这与其他有关Node中读取RangeError错误消息的其他问题是不同的:超出最大调用堆栈大小 ,我知道为什么我会收到此错误消息。 这是因为我正在recursion,实际上recursion了很多。

谢谢。

node --help

 node --max-stack-size=val 

更新:如注释所示,尽pipe帮助文本仍然列出了--max-stack-size选项,但是在节点v0.10.x中,您需要使用--stack-size

 node --stack-size=val 

在节点版本5和6中,我已经validation了设置最大堆栈大小的选项是“–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则更高。

纵观全局,增加堆栈大小可能无法解决所有问题。 在节点中编写recursion函数时,最好的策略是以尾recursion 方式编写它们,因为版本6支持适当的尾部调用。 这将消除堆栈大小溢出。