visual studio 中的堆栈保留大小是什么意思

visual studio 中的堆栈保留大小是什么意思,第1张

/STACK 选项设置堆栈大小(以字节为单位)。此选项仅在生成 .exe 文件时使用。

reserve 值指定虚拟内存中的总的堆栈分配。对于 x86 和 x64 计算机,默认堆栈大小为 1 MB。在 Itanium 芯片组上,默认大小为 4 MB。

commit 取决于 *** 作系统所作的解释。在 Windows NT 和 Windows 2000 中,它指定一次分配的物理内存量。提交的虚拟内存导致空间被保留在页面文件中。更高的 commit 值在应用程序需要更多堆栈空间时可节省时间,但会增加内存需求并有可能延长启动时间。对于 x86 和 x64 计算机,默认提交值为 4 KB。在 Itanium 芯片组上,默认值为 16 KB。

以十进制或 C 语言表示法指定 reserve 值和 commit 值。

(1)栈大小:

32位Windows,一个进程栈的默认大小是1M,在vs的编译属性可以修改程序运行时进程的栈大小

linux下:ulimit -s 查看并修改默认栈空间大小,8M(可使用命令“ulimit -s 字节数”:临时修改栈空间大小)

(2)堆大小

堆的大小理论上 ≈ 进程虚拟空间大小 - 内核虚拟内存大小。

32位windows下,进程的高位2G留给内核,低位2G留给用户,所以进程堆的大小小于2G。

Linux下,进程的高位1G留给内核,低位3G留给用户,所以进程堆大小小于3G。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/tougao/11039257.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-13
下一篇 2023-05-13

发表评论

登录后才能评论

评论列表(0条)

保存