2011-09-24 180 views

回答

19

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

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

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

cat /proc/<pid>/limits 
+0

我收到未找到错误的命令。我需要为这个命令安装什么软件包? – Bruce

+0

这是一个C API调用,而不是命令行工具。 –

+0

他们需要拥有一些适合的起始尺寸?编译器是否事先计算堆栈帧的大小(考虑到所有局部变量),然后分配帧? – Bruce

13

最大堆栈大小:

ulimit -s