我怎么知道进程的内存使用情况

时间:2014-02-25 02:35:14

标签: linux memory pid proc

我现在正试图分析进程的内存使用情况,进程是用C语言编写的。 我想知道进程分配的每个变量的大小和地址。 我知道/ proc / PID / maps是了解这些事情的好方法,但我不知道它是否能告诉我我想知道的信息。 例如,如果C程序分配这样的内存, int i = 10; 或者喜欢这个 float * f =(float *)malloc(sizeof(float)),我想获得如下信息 0x0000 ... 4byte (对于int i)和 0x0000 ... (对于float * f)。 就我而言,如果地址是集成的,那就没问题了。我的意思是我不在乎如果我声明2个变量,如下所示 int i,j; ,信息如下 0x000 ... 8byte (关于i和j)的信息。 有没有人知道过程的内存使用情况,或者知道如何理解/ proc / PID / maps的意思?

如果有人教我这些东西,我将不胜感激。

问候。

PS:

我累了valgrind。 它是一个很好的调试器,但我想处理来自我的C代码的数据。 是否有valgrind的头文件,或者是其他工具?

1 个答案:

答案 0 :(得分:0)

Valgrind对您有用:

   Massif: a heap profiler

注意使用--pages-as-heap来测量进程中的所有内存