回答
這不僅取決於操作系統和編譯器像在這裏陳述。
根本不可能一般預先確定它。
例如,如果您使用遞歸調用,您將不得不知道這些調用的參數,並且如果某些參數依賴於用戶輸入或其他不可預知的參數的東西。
當然,你可以做出一些最壞的情況,但通常上限對於大多數問題是無限的。
所以只有當你的程序非常簡單和線性時,你纔可以這樣做。
是的,但是這樣做的方法取決於操作系統。你的目標是哪個平臺?
是的 - 根據你的編譯器/ os你放在堆棧上的每個對象都有一個大小(例如int - 4字節,但它從編譯器到編譯器,從os到os) - 你可以用sizeof來找到運行時間是您放入堆棧的大小。 最終,程序的szie將是代碼的大小+您創建的堆棧的大小。 (發現代碼的大小比較困難,但是你可以加載程序並在任務管理器中看到它需要多少,如果你在窗口中,這應該給你一些估計)。 我認爲最高層會在Linux上做到這一點。
不正確的是,你沒有考慮堆棧對齊方式(不能在堆棧中推送一個'char',並期望它需要1個字節。而且你錯過了編譯器爲你提供的東西,比如返回地址。 – MSalters 2009-11-04 15:44:11
如果Linux的如FC9等,請參閱的/ proc/[PID] /地圖,如:
cat /proc/2738/maps
那將意義
這也取決於你的呼叫跟蹤有多深。 (你是否使用遞歸函數等等。)另外,你的操作系統可以堆棧嗎?
有CPU和內存分析工具可用,可幫助您查找程序在運行時需要多少CPU時間或內存。
- 1. 如何計算內存中Erlang進程的大小?
- 2. 如何計算可用內存上的最大列表大小?
- 3. 計算虛擬內存表的大小?
- 4. 如何小牛計算虛擬內存大小
- 5. 內存單元,計算大小,幫助!
- 6. 計算內容的大小
- 7. C++程序內存計算
- 8. 如何計算指針指向內存的大小?
- 9. 如何計算內存中的類實例大小?
- 10. 估計/計算內存中對象大小的好方法
- 11. 內存中的C++程序大小
- 12. C程序將不計算最小和最大(大和小)
- 13. 計算UIView的內容大小?
- 14. 內存VS數據計算機程序
- 15. 我如何獲得我的程序分配的內存大小?
- 16. 如何減少我的MAF應用程序的內存大小
- 17. 程序如何映射到計算機的內存和操作?
- 18. 如何計算java程序的內存使用情況?
- 19. 寄存器長度,內存大小和32/64位計算(MIPS)
- 20. `find'如何計算文件的大小?
- 21. 如何計算此表單的大小?
- 22. 如何計算精靈的大小?
- 23. 如何計算NSString的大小?
- 24. 如何計算查詢bigquery的大小?
- 25. 如何計算GIF圖像的大小?
- 26. 如何計算DB2中表的大小
- 27. MongoDB如何計算文檔的大小?
- 28. 如何計算記錄的大小
- 29. 如何計算UITextView的邊距大小?
- 30. Qt如何計算它的大小?
這取決於編譯器和操作系統。你可能無法可靠地做到這一點。 (也就是說,請記住噸的函數在你的main()函數被執行之前就已經被執行了) – GManNickG 2009-11-03 05:16:48
你想知道程序在一次特定的運行中有多少內存,它在一個特定的點上使用了多少內存或者你想在運行程序之前靜態確定最壞的內存使用情況? – Ned 2009-11-03 08:06:16