为什么在没有实际写入的情况下进行 malloc 时 rss 不断增长?

问题描述

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

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

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)

相关问答

错误1:Request method ‘DELETE‘ not supported 错误还原:...
错误1:启动docker镜像时报错:Error response from daemon:...
错误1:private field ‘xxx‘ is never assigned 按Alt...
报错如下,通过源不能下载,最后警告pip需升级版本 Requirem...