無論在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文章
82瀏覽量
37511 -
Linux系統
+關注
關注
4文章
603瀏覽量
28321
原文標題:棧默認到底有多大~~
文章出處:【微信號:emOsprey,微信公眾號:魚鷹談單片機】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
ucos_ii 每個任務具體定義棧大小
如何查看CC2530的z-stack協議棧程序的大小?
請問Z-Stack 協議棧SampleAPP默認時鐘是多少MHZ?
請問stm32棧區和堆區的如何設置大小
ThreadX任務棧大小的確定方法以及棧溢出檢測方法
講解ThreadX任務棧大小的確定方法以及棧溢出檢測方法
堆和棧的區別是什么
棧空間的大小如何分配
關于Linux跨網絡運行X Window程序
如何為程序分配合適的棧空間?

STM32堆棧空間大小設置

評論