无论在Window还是Linux上,我们写代码的时候,不管是应用程序还是内核,都有必要了解内存的大小。当然,也需要了解栈大小。
前两天,微信群里就讨论了这样的问题,大家对于栈和堆的理解,可以在评论去说下自己的看法。
在 Window 下:
有些资料会说明Window程序的栈默认大小是2M,但我们讨论了很久,并不知道2M大小是如何得来的。
首先我写了一个测试程序来测试栈大小,结果如下:
使用DEVC++执行如下:
看起来是接近2M,然后我们查了下资料,有一个比较官方的资料说明了栈的大小应该是1M。
那我们测试出来的结果还是没有找到原因,但是我们可以尝试设置下程序的栈大小。
通过这样设置后,可以看到测试出来的栈大小与设置的相符合的。
在 Linux 下:
Linux中测试栈的大小比较容易:
当然,我们可以用命令来获取堆栈大小或者设置堆栈大小。
也可以查进程信息:
实验下设置堆栈的大小:
这里面有一个小技巧:
Once ulimit is set it can only be lowered never raised. ulimit
设置后,只能降低而不能提高。
审核编辑:刘清
全部0条评论
快来发表一下你的评论吧 !