0

AFAIK,malloc 没有理由使用物理内存,除非进行实际的写操作,因为Demand paging,但是当我实际测试时:

// 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);
         }
 }

然后在另一个 shell 中,您会注意到gcc test.c -o test && ./testrss正在疯狂增加!top -d $(pgrep test)

4

0 回答 0