如何找到最大堆栈大小?
答
您可以使用getrlimit
查询最大进程和堆栈大小。堆栈帧没有固定的大小;它取决于每个帧需要多少局部数据(即局部变量)。
要在命令行上执行此操作,可以使用ulimit。
如果你想为正在运行的进程读取这些值,我不知道这是否任何工具,但它很容易查询/ proc文件系统:
cat /proc/<pid>/limits
答
快速谷歌搜索应该显示some information on this subject。以KB为单位
> ulimit -a # shows the current stack size
+1
当然,快速的谷歌搜索现在提供了这个页面。 – gerardw
答
最大堆栈大小:
ulimit -s
我收到未找到错误的命令。我需要为这个命令安装什么软件包? – Bruce
这是一个C API调用,而不是命令行工具。 –
他们需要拥有一些适合的起始尺寸?编译器是否事先计算堆栈帧的大小(考虑到所有局部变量),然后分配帧? – Bruce