當前位置:首頁 » 編程軟體 » 調大編譯器的棧區

調大編譯器的棧區

發布時間: 2023-08-28 14:29:44

① 一個程序編譯後,對於棧內存空間的大小,是如何定的呢

棧區內存,由編譯器自動分配釋放 ,存放函數的參數值,局部變數的值等。其操作方式類似於數據結構中的棧。訪問順序遵循先進後出原則。 棧stack:是程序啟動時候由程序留出的工作內存區 比如程序的局部變數,函數調用等都是從棧中獲取,

② 編譯器可以修改棧大小,這個值可以隨意設置嗎

你說的那個默認1M的棧,應該指的是call stack(函數調用使用的棧)。這個棧用來存放函數調用時所傳遞的參數(並非所有參數都通過棧傳遞),棧指針,return address,寄存器的備份,還有每層函數的local variable。
1M大多數情況都是夠用的,如果用完可能會發生非法訪問等錯誤。可能會用完1M的情況:某個被調用的函數申請了一個很大的local variable,比如直接在棧上開個大數組之類的;還有就是遞歸調用,遞歸層數多了後很容易就用完1M。所以遞歸一般不要亂用。

③ 程序設計中,堆和棧比較重要。棧存取速度大於堆,而且編譯器可以修改棧大小,這個值可以隨意設置嗎

學習電腦編程多年了,在程序設計方面也算有一番見解,希望這些經驗能對題主有所幫助。

  • 現在堆棧通常默認為8M,對吧?事實上,如果你不濫用遞歸,或者alloca / vla,大多數時候,就足夠了。即使它不超過內核限制,通常也不適合驅動大型的,或者它會影響並發進程的數量。並且過程啟動時間也應該稍微減少。當然,如果是專用的伺服器系統,問題就不嚴重了。

熱點內容
java如何刪除文件夾 發布:2024-11-20 15:24:40 瀏覽:385
溫十系統配置怎麼找到 發布:2024-11-20 15:22:15 瀏覽:254
centos解壓zip 發布:2024-11-20 15:09:52 瀏覽:144
ftp軟體的使用 發布:2024-11-20 14:53:21 瀏覽:611
手機看wifi密碼怎麼看 發布:2024-11-20 14:32:39 瀏覽:794
l2級別安全配置都有哪些配置 發布:2024-11-20 14:31:02 瀏覽:773
明日之後伺服器怎麼那麼多 發布:2024-11-20 14:29:59 瀏覽:144
html5開發源碼下載 發布:2024-11-20 14:24:52 瀏覽:216
安卓系統鎖了怎麼刷機 發布:2024-11-20 14:22:40 瀏覽:738
php生成網頁圖片 發布:2024-11-20 14:17:30 瀏覽:968