其实我的代码有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