我想增加我的节点进程的调用堆栈限制,这样我就可以创建、解析和序列化100,000层深的递归对象。如果我有更多的时间,我应该用更好的格式来表示它。
但是为了快速解决问题,有一个suggested solution可以做类似这样的事情:
/bin/bash -c "ulimit -s $n; exec /usr/local/bin/node --stack-size=$n app.js"有什么我需要担心的后果吗?
发布于 2020-08-25 08:48:01
只需使用node --stack-size=2048 app.js或以千字节为单位的任何其他数量。但请记住,这不是一种生产方式。更高的价值你会放-更不稳定的应用程序可能会成为。
正如其他人所指出的,请注意,增加此值可能会导致分段错误。从更大的角度来看,增加堆栈大小可能并不能解决所有问题。在node中编写递归函数时,您最好的策略是以尾递归方式编写它们,因为node支持正确的尾部调用。这将消除堆栈大小溢出。
https://stackoverflow.com/questions/63569259
复制相似问题