在不同平台修改默认栈大小

在不同平台修改默认栈大小

ID:8831745

大小:52.00 KB

页数:2页

时间:2018-04-08

在不同平台修改默认栈大小_第1页
在不同平台修改默认栈大小_第2页
资源描述:

《在不同平台修改默认栈大小》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库

1、在不同平台修改默认栈大小在应用程序我们经常需要定义大的数组,数组定义成局部变量非静态变量,那么数组就会在栈上分配,当数组超过默认栈的大小时,会引起非常内存访问。那么如何修改系统默认的栈的大小呢。一般,在Unix-like平台,栈的大小不是由程序自己来控制的而是由环境变量来控制的,所以就不能通过设置编译器(像gcc)的任何编译标志来设置栈的大小;在windows平台下,栈的大小的信息是包含在可执行文件中的。它可以在VisualC++的编译过程中设置,但是在gcc中是不可行的。也可以用Microsof

2、t提供的一个叫作:”editbin.exe“程序来直接修改可执行文件的栈的大小。在一般情况下, 不同平台默认栈大小如下(仅供参考)SunOS/Solaris8172Kbytes(SharedVersion)Linux10240KbytesWindows1024Kbytes(ReleaseVersion)AIX65536Kbytes如果定义大数组的情况下,那就需要修改默认的栈大小,下面给出几个平台的修改方法:1.SunOS/Solaris系统:limit#显示当前用户的栈大小unlimit#将当前用

3、户的栈大小改为不限制大小setenvSTACKSIZE32768#设置当前用户的栈大小为32Mbytes2.Linux系统:ulimit-a#显示当前用户的栈大小ulimit-s32768#将当前用户的栈大小设置为32Mbytes3.Windows(在编译过程中的设置):1).选择"Project->Setting".2).选择"Link".3.选择"Category"中的"Output".4.在"Stackallocations"中的"Reserve:"中输栈的大小,例如:32768如下图所示:

4、4.AIX系统:以root用户修改/etc/security/limits文件。在这个文件中添加相应的用户的一些限制,下面以tlq用户的栈大小要修改为64M为例进行说明:Su–rootVi/etc/security/limits文件的末尾添加如下:tlq:fsize=-1core=2097151cpu=-1data=-1rss=-1stack=65536nofiles=-1修改完之后,再退出系统,重新登陆。此时就可以用ulimit–a来查看static大小,此时已经改为了65536K了。

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。