c – 是否可以确定堆栈上有多少空间?
我正在构建一个小型的软件引擎,并且我想要使用大量的堆叠来快速迭代.但是,对我来说,这可能是一个坏主意,因为堆栈不像堆那么大的内存存储.但是我受到堆栈速度的吸引,缺乏动态分配编码实践.
有没有办法找出我可以在给定的平台上推多少堆栈?我主要看移动设备,但问题可能会出现在任何平台上. 解决方法
On * nix,使用
getrlimit :
RLIMIT_STACK The maximum size of the process stack,in bytes. Upon reaching this limit,a SIGSEGV signal is generated. To handle this signal,a process must employ an alternate signal stack (sigaltstack(2)). 在Windows上,使用
没有独立于平台的方法,因为堆栈大小在逻辑上落在了实现和主机系统上 – 在嵌入式mini-SOC上,与128GB RAM服务器相比,分发资源较少.然而,您可以影响所有操作系统上的特定线程的堆栈大小以及API特定的调用. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |