Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/spring-mvc/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何增加Node.js中的最大调用堆栈大小_Node.js_Stack Overflow_Callstack - Fatal编程技术网

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

如何增加Node.js中的最大调用堆栈大小,node.js,stack-overflow,callstack,Node.js,Stack Overflow,Callstack,这与关于节点中读取RangeError:Maximum call stack size Oversed的错误消息的其他问题不同,因为我知道获取此错误消息的确切原因。它的发生是因为我在递归,事实上递归很多 谢谢。来自节点--帮助: node --max-stack-size=val 更新:如注释所示,尽管帮助文本仍然列出了--max stack size选项,但在节点v0.10.x中,您需要使用--stack size node --stack-size=val 在节点版本5和6中,我验证了设

这与关于节点中读取RangeError:Maximum call stack size Oversed的错误消息的其他问题不同,因为我知道获取此错误消息的确切原因。它的发生是因为我在递归,事实上递归很多

谢谢。

来自
节点--帮助:

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

node --stack-size=val

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

要增加最大堆栈大小,只需发出如下命令:

$ node --stack_size=1200
正如其他人所指出的,请注意,增加此值可能会导致分段错误。对于我来说,版本6的最大安全值是1361,但是版本5似乎更高


从更大的角度来看,增加堆栈大小可能无法解决所有问题。在节点中编写递归函数时,最好的策略是将它们编写在一个节点中,因为版本6支持正确的尾部调用。这将消除堆栈大小溢出。

很明显,现在我正在查看--help:)出于某种原因,我发现--stack size适合我,而不是--max-stack-size。最大安全堆栈大小是多少?这取决于CPU周期吗?同样的问题是,如果增加堆栈大小,就会出现新的错误-分段错误»这似乎是一个常见的误解,但是--stack_size=。。。不会更改堆栈的大小,它会告诉node/V8它有多大。如果您将其设置为大于实际大小的值,它将运行。«-问题是,有许多方法可以填充堆栈-映射、forEach、Promise。all…Tail Call optimization仅由Safari支持-Node已放弃其支持:
$ node --stack_size=1200