问题描述
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 && ./test
和 top -d $(pgrep test)
在另一个 shell 中,您会注意到 rss 正在疯狂增加!
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)