当前位置: 首页 > 面试题库 >

如何找到最大堆栈大小?

晏望
2023-03-14
问题内容

我正在使用Ubuntu 11.04。如何找出进程的最大调用堆栈大小以及堆栈中每个帧的大小?


问题答案:

您可以使用查询最大进程和堆栈大小getrlimit。堆栈框架没有固定的尺寸。它取决于每个帧需要多少本地数据(即本地变量)。

要在命令行上执行此操作,可以使用ulimit。

如果要为正在运行的进程读取这些值,我不知道执行此操作的任何工具,但是查询/ proc文件系统很容易:

cat /proc/<pid>/limits


 类似资料:
  • 这与其他关于Node中错误消息的问题不同,错误消息中写着RangeError:超出最大调用堆栈大小,因为我确切地知道为什么会收到这条错误消息。它的发生是因为我在递归,事实上递归了很多次。 谢谢。

  • 问题内容: 这与有关Node中读取 RangeError 的错误消息的其他问题不同 :超出最大调用堆栈大小的 原因是我确切知道为什么收到此错误消息。之所以会这样,是因为我要递归,实际上递归很多。 谢谢。 问题答案: 来自: 更新:如注释所示,即使帮助文本仍列出了该选项,您也需要在节点v0.10.x中使用它。

  • 问题内容: 当我运行我的代码时,Node.js引发由过多的递归调用引起的异常。我试图将Node.js堆栈大小增加,但是Node.js崩溃而没有任何错误消息。当我不使用sudo再次运行此命令时,Node.js将输出。是否有可能在不删除递归调用的情况下解决此问题? 问题答案: 您应该将递归函数调用包装到 , 要么 函数使node.js有机会清除堆栈。如果您不这样做,并且有很多循环没有任何 真正的 异步

  • 问题内容: 我想这意味着有一个循环引用,但是对于我的一生,我无法猜测如何解决它。 有人有主意吗? http://plnkr.co/edit/aNcBcU?p=预览 检查Chrome中的调试控制台(例如),您将看到错误。冒犯的行是 通过以下方式在控制器上对scope.map进行“ $ watched” 问题答案: 这是因为您要比较对象是否相等,而不是参考。将您的声明更改为此:

  • 我试过下面的程序。创建此程序的目的是了解有关堆栈大小的更多信息。 执行上述代码后,由于堆栈大小分配过大,程序崩溃。堆栈的最大可能大小是多少?是否为每个程序/计算机固定?可以增加吗? 我想知道是为了知识。如果有人能提供C/C中的例子,那将是非常有帮助的。

  • 如果用户未登录,我尝试将用户重定向到“TrapPage”。 这是我的代码: 当我将函数requireAuth放在onEnter上时,控制台给我一个错误: 我是一个反应迟钝的人,请耐心点:) 我的代码有什么问题?