#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include <unistd.h>
int main() {
int i = 0;
struct rusage r_usage;
while (++i <= 10) {
void *m = malloc(20*1024*1024);
memset(m,0,20*1024*1024);
getrusage(RUSAGE_SELF,&r_usage);
printf("Memory usage = %ld\n",r_usage.ru_maxrss);
sleep (3);
}
printf("\nAllocated memory, sleeping ten seconds after which we will check again...\n\n");
sleep (10);
getrusage(RUSAGE_SELF,&r_usage);
printf("Memory usage = %ld\n",r_usage.ru_maxrss);
return 0;
}
Приведенный выше код использует атрибут ru_maxrss структуры rusage . Это дает значение максимального резидентного размера набора. Что это значит? Каждый раз, когда программа выполняется, она дает другое значение. Поэтому, пожалуйста, объясните вывод этого кода?


Это скриншоты двух выполнения одного и того же кода, которые дают разные выходы, как объяснить эти числа или что можно интерпретировать из этих двух выходов?