如何使用连续的malloc函数调用增加C程序的内存(RAM)



我正在编写一个C测试程序,该程序每秒连续调用Malloc函数,目的是测试Linux系统中运行的基于ARM的处理器的RAM限制,p>我写了下面的代码,然后在计算机(OS:Ubuntu 16.04)之前对其进行了测试,但是RAM职业(VMRSS)并没有每秒更改,但是我猜想每10秒钟,有人可以解释为什么吗?

FILE *trace;
int compteur=0;
char *var;
while (1)
{
    trace=fopen("trace.txt","a");
    compteur++;
    var=(char *)malloc(100000);
    fprintf(trace,"%dn",compteur);
    fclose(trace);
    sleep(1);
}

我启动此命令检查程序的RAM职业

 cat /proc/prog_pid/status | grep "VmRSS"

预期结果:RAM增加100K,一秒

实际结果:RAM每10秒递增1m

从某些注释中,我发现Malloc的实现可能会通过大块从系统中获得内存,并且OS不必每次都确切的内存数量,通过在TXT文件中写入分配的字节数,我能够确切确定RAM限制。

最新更新