栈的大小程序员是可以定制的。例如:
Windows (在编译过程中的设置):
1). 选择 "Project->Setting".
2). 选择 "Link".
3). 选择 "Category"中的 "Output".
4.) 在 "Stack allocations"中的"Reserve:"中输栈的大小,例如: 32768
在 Visual Studio 开发环境中设置此链接器选项
打开此项目的“属性页”对话框。有关详细信息,请参见设置 Visual C++ 项目属性。
单击“链接器”文件夹。
单击“系统”属性页。
修改下列任一属性:
堆栈提交大小
堆栈保留大小
/STACK选项设置堆栈的大小(以字节为单位)。此选项仅在生成.exe文件时使用。reserve值指定虚拟内存中的总的堆栈分配。对于x86和x64计算机,默认堆栈大小为1MB。在Itanium芯片组上,默认大小为4MB。commit取决于 *** 作系统所作的解释。在WindowsNT和Windows2000中,它指定一次分配的物理内存量。提交的虚拟内存导致空间被保留在页面文件中。更高的commit值在应用程序需要堆栈空间时可节省时间,但会增加内存需求并有可能延长启动时间。对于x86和x64计算机,默认提交值为4KB。在Itanium芯片组上,默认值为16KB。以十进制或C语言表示法指定reserve值和commit值。栈是线程的,不是进程的是一个进程一个堆,一个线程一个栈吗
堆≈虚拟内存大小-1GB
栈通常为4MB
下面是一些说明文件:
Visual C++ 编译器选项
/F(设置堆栈大小)
请参见 发送反馈意见
设置程序堆栈大小(以字节为单位)。
/F[ ]number
参数
number
堆栈大小(以字节为单位)。
备注
如果不使用此选项,堆栈大小默认为 1 MB。number 参数可以用十进制或 C 语言表示法表示。参数的范围可以在 1 到链接器接受的最大堆栈大小之间。链接器将指定值向上舍入为最接近的 4 个字节。/F 和 number 之间的空格可选的。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)