全球最实用的IT互联网信息网站!

AI人工智能P2P分享&下载搜索网页发布信息网站地图

当前位置:诺佳网 > 电子/半导体 > 嵌入式技术 >

Window程序的栈默认大小是多少?

时间:2023-10-07 09:19

人气:

作者:admin

标签: Linux系统  window 

导读:无论在Window还是Linux上,我们写代码的时候,不管是应用程序还是内核,都有必要了解内存的大小。当然,也需要了解栈大小。...

无论在Window还是Linux上,我们写代码的时候,不管是应用程序还是内核,都有必要了解内存的大小。当然,也需要了解栈大小。

前两天,微信群里就讨论了这样的问题,大家对于栈和堆的理解,可以在评论去说下自己的看法。

在 Window 下:

有些资料会说明Window程序的栈默认大小是2M,但我们讨论了很久,并不知道2M大小是如何得来的。

首先我写了一个测试程序来测试栈大小,结果如下:

wKgaomUgsmyANhAUAAAkJE2zuTw637.jpg

使用DEVC++执行如下:

wKgZomUgsjuAdJTjAAIjDai0DzA295.jpg

看起来是接近2M,然后我们查了下资料,有一个比较官方的资料说明了栈的大小应该是1M。

wKgaomUgsjuAJ68zAAKUpKMEIwE191.jpg

那我们测试出来的结果还是没有找到原因,但是我们可以尝试设置下程序的栈大小。

wKgZomUgsjuANq1nAAPupEIy9EI087.jpg

通过这样设置后,可以看到测试出来的栈大小与设置的相符合的。

wKgZomUgsjuANYMGAAHFobieI_s279.jpg

在 Linux 下:

Linux中测试栈的大小比较容易:

wKgaomUgspSASNqtAABqD4ZutBs414.jpg

当然,我们可以用命令来获取堆栈大小或者设置堆栈大小。

wKgZomUgsjuAbkBOAANUp85kcws720.jpg

也可以查进程信息:

wKgZomUgsjuABEsgAAaRZO8eRVs221.jpg

实验下设置堆栈的大小:

wKgaomUgsjuAVwwZAAKS0iA6sko434.jpg

这里面有一个小技巧:

Once ulimit is set it can only be lowered never raised. ulimit

设置后,只能降低而不能提高。

wKgaomUgsjuAVUFDAABY12qhP6Q801.jpg





审核编辑:刘清

温馨提示:以上内容整理于网络,仅供参考,如果对您有帮助,留下您的阅读感言吧!
相关阅读
本类排行
相关标签
本类推荐

CPU | 内存 | 硬盘 | 显卡 | 显示器 | 主板 | 电源 | 键鼠 | 网站地图

Copyright © 2025-2035 诺佳网 版权所有 备案号:赣ICP备2025066733号
本站资料均来源互联网收集整理,作品版权归作者所有,如果侵犯了您的版权,请跟我们联系。

关注微信