如何找到最大堆栈大小?
- 2024-11-08 08:43:00
- admin 原创
- 164
问题描述:
我正在使用 Ubuntu 11.04。如何找出进程的最大调用堆栈大小以及堆栈每个框架的大小?
解决方案 1:
通过 Google 快速搜索应该可以找到有关该主题的一些信息。
> ulimit -a # shows the current stack size
解决方案 2:
您可以使用 查询最大进程和堆栈大小getrlimit
。堆栈框架没有固定的大小;它取决于每个框架需要多少本地数据(即局部变量)。
要在命令行上执行此操作,您可以使用 ulimit。
如果您想读取正在运行的进程的这些值,我不知道有任何工具可以做到这一点,但查询 /proc 文件系统很容易:
cat /proc/<pid>/limits
解决方案 3:
以下调用ulimit
返回最大堆栈大小(以 kibibytes 为单位)(2 10 = 1024 字节):
ulimit -s
解决方案 4:
您可以使用getrlimit
来查看堆栈大小并setrlimit
进行更改。
在《使用 setrlimit 增加 Linux 中的堆栈大小》一文中有一个例子。
解决方案 5:
getrlimit()
和setrlimit()
不是 Linux 命令。它们是系统调用。
因此,为了获得它们的结果,您需要类似 bash 脚本或任何其他返回系统调用结果的可执行脚本。
相关推荐
热门文章
项目管理软件有哪些?
热门标签
云禅道AD