2013-03-15 33 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)传递不可寻址字节到系统调用

相关问题