malloc()未显示在系统监视器中

时间:2013-12-06 15:37:34

标签: memory malloc monitoring allocation

我编写了一个程序,其唯一目的是分配给定量的内存,以便我可以看到它对Ubuntu 12.04系统监视器的影响。 这就是我写的

#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>

int main(int argc, char **argv)
{
    if(argc<2)
        exit(-1);

    int *mem=0;
    int kB = 1024*atoi(argv[1]);

    mem = malloc(kB);

    if(mem==NULL)
        exit(-2);

    sleep(3);

    free(mem);
    exit(0);
}

我使用sleep()以便程序不会立即结束,以便系统监视器有时间显示内存中的更改。 发生了什么(我很困惑)是即使我分配了1GB,系统监视器也没有显示内存变化!为什么会这样?

我认为原因可能是因为从未访问过分配的内存所以我尝试在sleep()之前插入以下内容

int i;
for(i=0; i<kB/sizeof(int); i++)
    mem[i]=i;

但这对系统监视器中的图形也没有影响。

感谢。

0 个答案:

没有答案