Я пишу тестовую программу на C, которая последовательно вызывает функцию malloc каждую секунду, цель состоит в том, чтобы проверить ограничение ОЗУ процессора на базе ARM, работающего в системе Linux,
Я написал кодниже, и я проверял это раньше на моем компьютере (ОС: Ubuntu 16.04), но заполнение ОЗУ (VmRSS) не меняется каждую секунду, но, наверное, каждые 10 секунд, кто-нибудь может объяснить, почему?
FILE *trace;
int compteur=0;
char *var;
while (1)
{
trace=fopen("trace.txt","a");
compteur++;
var=(char *)malloc(100000);
fprintf(trace,"%d\n",compteur);
fclose(trace);
sleep(1);
}
Iзапустите эту команду, чтобы проверить занятость памяти программы
cat /proc/prog_pid/status | grep "VmRSS"
Ожидаемые результаты: увеличение оперативной памяти на 100 КБ каждую секунду
Реальные результаты: увеличение оперативной памяти на 1 М каждые 10+ секунд