無(wú)論在Window還是Linux上,我們寫(xiě)代碼的時(shí)候,不管是應(yīng)用程序還是內(nèi)核,都有必要了解內(nèi)存的大小。當(dāng)然,也需要了解棧大小。
前兩天,微信群里就討論了這樣的問(wèn)題,大家對(duì)于棧和堆的理解,可以在評(píng)論去說(shuō)下自己的看法。
在 Window 下:
有些資料會(huì)說(shuō)明Window程序的棧默認(rèn)大小是2M,但我們討論了很久,并不知道2M大小是如何得來(lái)的。
首先我寫(xiě)了一個(gè)測(cè)試程序來(lái)測(cè)試棧大小,結(jié)果如下:
使用DEVC++執(zhí)行如下:
看起來(lái)是接近2M,然后我們查了下資料,有一個(gè)比較官方的資料說(shuō)明了棧的大小應(yīng)該是1M。
那我們測(cè)試出來(lái)的結(jié)果還是沒(méi)有找到原因,但是我們可以嘗試設(shè)置下程序的棧大小。
通過(guò)這樣設(shè)置后,可以看到測(cè)試出來(lái)的棧大小與設(shè)置的相符合的。
在 Linux 下:
Linux中測(cè)試棧的大小比較容易:
當(dāng)然,我們可以用命令來(lái)獲取堆棧大小或者設(shè)置堆棧大小。
也可以查進(jìn)程信息:
實(shí)驗(yàn)下設(shè)置堆棧的大?。?/p>
這里面有一個(gè)小技巧:
Once ulimit is set it can only be lowered never raised. ulimit
設(shè)置后,只能降低而不能提高。
審核編輯:劉清
-
Window
+關(guān)注
關(guān)注
0文章
82瀏覽量
37305 -
Linux系統(tǒng)
+關(guān)注
關(guān)注
4文章
596瀏覽量
27510
原文標(biāo)題:棧默認(rèn)到底有多大~~
文章出處:【微信號(hào):emOsprey,微信公眾號(hào):魚(yú)鷹談單片機(jī)】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
ucos_ii 每個(gè)任務(wù)具體定義棧大小
如何查看CC2530的z-stack協(xié)議棧程序的大小?
請(qǐng)問(wèn)Z-Stack 協(xié)議棧SampleAPP默認(rèn)時(shí)鐘是多少MHZ?
請(qǐng)問(wèn)stm32棧區(qū)和堆區(qū)的如何設(shè)置大小
ThreadX任務(wù)棧大小的確定方法以及棧溢出檢測(cè)方法
講解ThreadX任務(wù)棧大小的確定方法以及棧溢出檢測(cè)方法
堆和棧的區(qū)別是什么
棧空間的大小如何分配
怎樣去修改棧空間的大小呢
關(guān)于Linux跨網(wǎng)絡(luò)運(yùn)行X Window程序
如何為程序分配合適的棧空間?
![如何為<b class='flag-5'>程序</b>分配合適的<b class='flag-5'>棧</b>空間?](https://file.elecfans.com/web1/M00/D9/4E/pIYBAF_1ac2Ac0EEAABDkS1IP1s689.png)
STM32堆棧空間大小設(shè)置
![STM32堆<b class='flag-5'>棧</b>空間<b class='flag-5'>大小</b>設(shè)置](https://file.elecfans.com/web1/M00/D9/4E/pIYBAF_1ac2Ac0EEAABDkS1IP1s689.png)
修改棧空間的大小
![修改<b class='flag-5'>棧</b>空間的<b class='flag-5'>大小</b>](https://file.elecfans.com/web1/M00/D9/4E/pIYBAF_1ac2Ac0EEAABDkS1IP1s689.png)
評(píng)論