日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 运维知识 > linux >内容正文

linux

修改 堆栈大小 普适性方案总结 (跨平台 windows linux 栈设置大小)

發(fā)布時(shí)間:2024/9/30 linux 30 豆豆
生活随笔 收集整理的這篇文章主要介紹了 修改 堆栈大小 普适性方案总结 (跨平台 windows linux 栈设置大小) 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

http://www.cnblogs.com/titer1/archive/2012/03/31/2427436.html

棧的大小可以修改的。在應(yīng)用程序我們經(jīng)常需要定義大的數(shù)組,數(shù)組定義成局部變量非靜態(tài)變量,那么數(shù)組就會(huì)在棧上分配,當(dāng)數(shù)組超過默認(rèn)棧的大小時(shí),會(huì)引起非常內(nèi)存訪問。那么如何修改系統(tǒng)默認(rèn)的棧的大小呢。

?

一般,在Unix-like平臺(tái),棧的大小不是由程序自己來控制的而是由環(huán)境變量來控制的,所以就不能通過設(shè)置編譯器(像gcc)的任何編譯標(biāo)志來設(shè)置棧的大小;

//66上面這種說法,是不是,改變了環(huán)境,只要不更改回來,所有的相關(guān)程序都會(huì)受影響。

//windows?影響范圍更小,可以只是當(dāng)前程序。

//思考,待確認(rèn)?

?

在windows平臺(tái)下,棧的大小的信息是包含在可執(zhí)行文件中的。它可以在Visual C++的編譯過程中設(shè)置,但是在gcc中是不可行的。

?

//66待確認(rèn)??gcc

?

也可以用Microsoft提供的一個(gè)叫作:”editbin.exe“程序來直接修改可執(zhí)行文件的棧的大小。

?

?

在一般情況下, 不同平臺(tái)默認(rèn)棧大小如下(僅供參考)

SunOS/Solaris 8172K bytes (Shared Version)

Linux 10240K bytes

Windows?1024K?bytes (Release Version)

AIX 65536K bytes

?

?

如果定義大數(shù)組的情況下,那就需要修改默認(rèn)的棧大小,下面給出幾個(gè)平臺(tái)的修改方法:

1.SunOS/Solaris系統(tǒng):

limit # 顯示當(dāng)前用戶的棧大小?

unlimit?# 將當(dāng)前用戶的棧大小改為不限制大小

setenv STACKSIZE 32768 #設(shè)置當(dāng)前用戶的棧大小為 32M bytes

?

?

2.Linux系統(tǒng):

ulimit -a #顯示當(dāng)前用戶的棧大小

ulimit -s 32768 #將當(dāng)前用戶的棧大小設(shè)置為32M bytes

?

//66上面那個(gè)變量??淘寶博客?經(jīng)常出現(xiàn)。

?

3. Windows (在編譯過程中的設(shè)置):

1). 選擇 "Project->Setting".

2). 選擇 "Link".

3. 選擇 "Category"中的 "Output".

4. 在 "Stack allocations"中的"Reserve:"中輸棧的大小,例如: 32768?

?


總結(jié)

以上是生活随笔為你收集整理的修改 堆栈大小 普适性方案总结 (跨平台 windows linux 栈设置大小)的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。