这是关于节点的错误信息读取的RangeError其他问题不同:超过了,我知道为什么我收到此错误信息的最大调用堆栈大小 。 这是怎么回事,因为我递归,其实递归不少。
谢谢。
这是关于节点的错误信息读取的RangeError其他问题不同:超过了,我知道为什么我收到此错误信息的最大调用堆栈大小 。 这是怎么回事,因为我递归,其实递归不少。
谢谢。
从node --help
:
node --max-stack-size=val
更新:作为评论表明,即使帮助文本还列出了--max-stack-size
选项,在节点v0.10.x你需要使用--stack-size
来代替。
node --stack-size=val
在节点版本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版支持适当的尾调用。 这将消除堆栈大小溢出。