我將Linux機器的默認堆棧大小從8MB更改爲2MB,並且想要將我保存的內存量與此更改進行比較。如何可以比較與8MB堆棧大小的系統更改和一個與2 MB堆棧大小的效果如何比較不同的默認堆棧大小?
回答
編寫打印越來越多的諸如非尾遞歸函數:
void stackOverFlowMe(int i) {
cout<<i<<"\n";
stackOverFlowMe(i+1);
}
例如在C++中(你可以使用任何語言),並看看它有多遠。大多數程序並不需要那麼多。
在您的評論之後,您可以在shell中使用top
來檢查所有Linux發行版中的內存使用情況。第一行對全球信息:
top - 11:27:46 up 18 days, 21:08, 13 users, load average: 0.71, 0.23, 0.16
Tasks: 277 total, 2 running, 274 sleeping, 1 stopped, 0 zombie
%Cpu(s): 1.4 us, 0.4 sy, 0.0 ni, 98.1 id, 0.1 wa, 0.0 hi, 0.0 si, 0.0 st
KiB Mem : 8105520 total, 1798056 free, 3223720 used, 3083744 buff/cache
KiB Swap: 5192700 total, 5165132 free, 27568 used. 3993932 avail Mem
我想知道通過做這個改變我已經節省了多少內存,但是當我比較我在系統中看到相同的值。如果你能給我一些信息,那將是非常好的。謝謝 –
@ ABHINAVKUMAR13BIT0087請參閱編輯您的記憶的全局圖片。不確定你會受到什麼影響,取決於你正在運行的是什麼。 – kabanus
是的,我嘗試了頂部,免費,vmstat,/ proc/meminfo,但我無法找到太多的區別。但我會盡力去深入探索 –
當程序在你的Linux中運行,他們添加和從堆棧定期爲程序功能刪除數據。堆棧大小反映堆棧在內存中分配了多少空間。如果增加堆棧大小,則允許程序增加可以調用的例程數量。每次調用函數時,都可以將數據添加到堆棧中(堆積在最後一個例程數據的頂部)。
除非程序非常複雜,或者爲特殊目的而設計,堆棧大小爲8192kb通常很好。某些程序如圖形處理程序要求您增加堆棧的大小以便運行。因爲他們可能會在堆棧上存儲大量數據。以下是一些改變堆棧大小的命令。希望這會有所幫助。
SunOS/Solaris:
==============
> limit # shows the current stack size
> unlimit # changes the stack size to unlimited
> setenv STACKSIZE 32768 # limits the stack size to 32M bytes
Linux:
======
> ulimit -a # shows the current stack size
> ulimit -s 32768 # sets the stack size to 32M bytes
- 1. NPTL默認堆棧大小問題
- 2. 如何更改託管executable.net的默認堆棧大小
- 3. 爲什麼不能創建堆棧大小小於默認大小的線程?
- 4. sip堆棧比較
- 5. 比較和堆棧
- 6. Java堆棧比較
- 7. 如何在Java/Groovy的聲明堆棧大小(確認錯誤:堆棧太大)
- 8. 什麼是Node.js的默認堆棧大小?
- 9. 堆棧= java.lang.StackOverflowError的:堆棧大小8MB
- 10. 熱點默認最大堆大小
- 11. 如何找到最大堆棧大小?
- 12. Linux堆棧大小
- 13. Android堆棧大小
- 14. Tomcat7堆棧大小很小
- 15. 如何爲Java(xmx)設置默認最大堆大小,Linux(centos)
- 16. FreeRTOS STM32鏈接器堆棧大小vs任務堆棧大小
- 17. 在Windows中設置默認堆大小
- 18. 在Linux中啓動默認堆大小?
- 19. 如何增加scala堆棧大小?
- 20. 如何用runhaskell增加堆棧大小?
- 21. 如何確定內核堆棧大小
- 22. 內核如何決定堆棧大小
- 23. 如何增加Java堆棧大小?
- 24. 如何在AIX中找到默認的Java 1.4.2堆大小
- 25. 如何比較LINQ中不同大小的兩個列表
- 26. 如何比較兩個不同大小的數組?
- 27. 如何使用php比較兩個不同大小的數組?
- 28. 如何使用im4java比較不同大小的圖像
- 29. 如何比較JavaScript中不同樣本大小的平均值
- 30. LevelDB的默認比較器
這種異味問題;特別是根據你在某些答案中的一些評論。也許你可以改善Stack Overflow的問題。並且要清楚,Stack Overflow是編程和開發問題的網站。 – jww