Почему 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 безумно увеличивается!

0 ответов

Другие вопросы по тегам