我已經查看了GDB文檔,但沒有找到任何可以工作或顯示我需要的內容:我的應用程序使用的最大內存量。如何獲得執行應用程序時使用的內存量
如果相關,我正在使用MinGW-w64(適用於Windows的GCC)。我希望編程的東西,而不是「看你的任務管理器」。另外:我的應用程序一次執行,不會停止或停止任何地方,我想保持這種方式。
謝謝!
我已經查看了GDB文檔,但沒有找到任何可以工作或顯示我需要的內容:我的應用程序使用的最大內存量。如何獲得執行應用程序時使用的內存量
如果相關,我正在使用MinGW-w64(適用於Windows的GCC)。我希望編程的東西,而不是「看你的任務管理器」。另外:我的應用程序一次執行,不會停止或停止任何地方,我想保持這種方式。
謝謝!
你可以包裝的malloc/free或new /刪除: How-to-profile-memory-usage-of-a-c-program
從而可以檢查有多少內存(堆)使用在任何時間。
Windows提供了返回正在使用多少內存的函數。
http://msdn.microsoft.com/en-us/library/aa366589(v=VS.85).aspx
的標準沒有規定什麼比malloc()
和free()
更深,這讓C庫自由實現他們在目標環境中工作。結果是像GDB這樣的調試器沒有與特定環境綁定,因此無法分析內存分配。
該方法是否需要可移植? – bdonlan 2011-02-05 12:25:21
WMI會是您的選擇嗎?它當然可以告訴你幾乎任何你需要的任何進程:http://msdn.microsoft.com/en-us/library/aa394582(v=vs.85).aspx – alex 2011-02-05 12:26:24
@bdonlan:嗯,我是種令人驚訝的gdb沒有能力總結金額...便攜式會更好,並且應用程序本身之外將是首選(無源代碼污染)。 @alex:對於簡單數量的MB有點沉重,不是嗎?我想現有的應用報告,所以我不必擰我自己的實施。 – rubenvb 2011-02-05 12:40:58