2013-03-15 34 views
1

其實我的代碼有malloc。我正在使用Ubuntu操作系統,我想知道有多少堆內存使用?用於運行進程的堆內存

是否有任何命令,我可以找到一個正在運行的進程在Ubuntu操作系統中使用了多少堆?

說現在的malloc是無限循環,它是在一個終端上運行,並使用另一端,我想知道有多少堆內存是由正在運行的進程所佔用

回答

0

如果你真的想知道你的應用程序實際上使用的內存量,你需要一個分析器中運行它。例如,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)傳遞不可尋址字節到系統調用

相關問題