无论在Window还是Linux上,我们写代码的时候,不管是应用程序还是内核,都有必要了解内存的大小。当然,也需要了解栈大小。
前两天,微信群里就讨论了这样的问题,大家对于栈和堆的理解,可以在评论去说下自己的看法。
在 Window 下:
有些资料会说明Window程序的栈默认大小是2M,但我们讨论了很久,并不知道2M大小是如何得来的。
首先我写了一个测试程序来测试栈大小,结果如下:

使用DEVC++执行如下:

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

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

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

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

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

也可以查进程信息:

实验下设置堆栈的大小:

这里面有一个小技巧:
Once ulimit is set it can only be lowered never raised. ulimit
设置后,只能降低而不能提高。

审核编辑:刘清
-
Window
+关注
关注
0文章
96浏览量
37981 -
Linux系统
+关注
关注
4文章
609浏览量
29645
原文标题:栈默认到底有多大~~
文章出处:【微信号:emOsprey,微信公众号:鱼鹰谈单片机】欢迎添加关注!文章转载请注明出处。
发布评论请先 登录
ucos_ii 每个任务具体定义栈大小
如何查看CC2530的z-stack协议栈程序的大小?
请问Z-Stack 协议栈SampleAPP默认时钟是多少MHZ?
请问stm32栈区和堆区的如何设置大小
ThreadX任务栈大小的确定方法以及栈溢出检测方法
讲解ThreadX任务栈大小的确定方法以及栈溢出检测方法
堆和栈的区别是什么
栈空间的大小如何分配
关于Linux跨网络运行X Window程序
如何为程序分配合适的栈空间?
STM32堆栈空间大小设置

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