是否存在任何工具/命令来检查进程堆栈已使用的最大值?我需要它来调整程序的堆栈大小配置。
答案1
堆栈的最大大小为 256MB(每个线程)。这里您可以找到有关此内容的 IBM 官方文档:
限制和默认值
线程库有一些与实现相关的限制和默认值。这些限制和默认值可以通过符号常量来检索,以增强程序的可移植性。
每个进程的最大线程数
每个进程的最大线程数为 512。可以使用 pthread.h 头文件中定义的 PTHREAD_THREADS_MAX 符号常量在编译时检索最大线程数。
最小堆栈大小
线程的最小堆栈大小为 96KB。这也是默认的堆栈大小。可以使用 pthread.h 头文件中定义的 PTHREAD_STACK_MIN 符号常量在编译时检索该数字。
请注意,最大堆栈大小为 256MB,即段的大小。此限制由 pthread.h 头文件中的 PTHREAD_STACK_MAX 符号常量指示。
还查看每个用户ulimit
堆栈大小(以 kb 为单位)