Почему rss продолжает расти, когда malloc без фактического написания?
Насколько я знаю, у malloc нет причин использовать физическую память, если только не выполняется фактическая операция записи из-за пейджинга по требованию , но когда я на самом деле тестирую:
// gcc test.c
#include <stdio.h>
#include <stdlib.h>
int main (void) {
int n = 0;
while (1) {
if (malloc(1<<20) == NULL) {
printf("malloc failure after %d MiB\n", n);
return 0;
}
printf ("got %d MiB\n", ++n);
}
}
тогда
gcc test.c -o test && ./test
а также
top -d $(pgrep test)
в другой оболочке вы заметите, что rss безумно увеличивается!