其實我的代碼有malloc。我正在使用Ubuntu操作系統,我想知道有多少堆內存使用?用於運行進程的堆內存
是否有任何命令,我可以找到一個正在運行的進程在Ubuntu操作系統中使用了多少堆?
說現在的malloc是無限循環,它是在一個終端上運行,並使用另一端,我想知道有多少堆內存是由正在運行的進程所佔用
其實我的代碼有malloc。我正在使用Ubuntu操作系統,我想知道有多少堆內存使用?用於運行進程的堆內存
是否有任何命令,我可以找到一個正在運行的進程在Ubuntu操作系統中使用了多少堆?
說現在的malloc是無限循環,它是在一個終端上運行,並使用另一端,我想知道有多少堆內存是由正在運行的進程所佔用
可以使用/ proc文件系統
的/ proc/PID/shmam
它會告訴你它到底有多少內存在那個時候使用。
詳細的輸入參考
https://serverfault.com/questions/48582/how-is-memory-usage-reported-in-linux
How to measure actual memory usage of an application or process?
如果你真的想知道你的應用程序實際上使用的內存量,你需要一個分析器中運行它。例如,valgrind
可以爲您提供有關使用的內存量的更多信息,更重要的是可以瞭解程序中可能發生的內存泄漏。
考慮, http://valgrind.org/docs/manual/mc-manual.html
Valgrind的基本上是一個x86模擬器,檢查所有讀取和內存的寫入,攔截所有來電分配和釋放內存。的valgrind的MEMCHECK工具可以檢測以下:
1)使用未初始化存儲器,
2)讀/寫存儲器,已經free'd
3)讀/寫斷結束後of malloc'd blocks
4)在堆棧下面讀取/寫入不適合的區域。
5)內存泄漏
6)不匹配的使用malloc /新的/新的[]對免費/刪除/刪除[]
7)重疊在memcpy的src和dst的指針()和相關函數
8)雙釋放存儲器
9)傳遞不可尋址字節到系統調用
但我想堆存儲器 – Mohammed 2013-03-15 04:51:18