【问题标题】:Issues with using ulimit to increase stack size for Node使用 ulimit 增加 Node 堆栈大小的问题
【发布时间】:2020-08-24 22:00:15
【问题描述】:

我想增加我的节点进程的调用堆栈限制,以便我可以创建、解析和序列化大约100,000 层深的递归对象。如果我有更多的时间,我应该用更好的格式来表达这个。

但为了快速修复,有一个suggested solution 可以执行以下操作:

/bin/bash -c "ulimit -s $n; exec /usr/local/bin/node --stack-size=$n app.js"

有什么我需要担心的后果吗?

【问题讨论】:

    标签: node.js ulimit


    【解决方案1】:

    只需使用node --stack-size=2048 app.js 或任何其他以千字节为单位的数量。但请记住,这不是一种生产方式。您将赋予更高的价值 - 应用可能会变得更不稳定。

    正如其他人所指出的,请注意,增加此值可能会导致分段错误。纵观全局,增加堆栈大小可能无法解决所有问题。在 node 中编写递归函数时,最好的策略是以尾递归的方式编写它们,因为 node 支持正确的尾调用。这将消除堆栈大小溢出。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-11-22
      • 2010-11-24
      • 2013-03-15
      • 2017-06-08
      • 2012-02-10
      • 1970-01-01
      • 1970-01-01
      • 2011-04-03
      相关资源
      最近更新 更多