linux – 有些分配器是懒惰的吗?

我在 Linux中编写了一个C语言程序,用于mallocs内存,在循环中运行它,而TOP没有显示任何内存消耗.

然后我用那个记忆做了一些事情,TOP确实显示了内存消耗.

当我在malloc时,我真的“得到了内存”,还是有一个“懒惰”的内存管理,只有在我使用它时才给我内存?

(还有一个选项,当我使用它时TOP才知道内存消耗,所以我不确定这个…)

谢谢

解决方法

在Linux上,malloc使用sbrk()或mmap()请求内存 – 无论哪种方式,您的地址空间都会立即扩展,但Linux在第一次写入相关页面之前不会分配实际的物理内存页面.您可以在VIRT列中看到地址空间扩展,而在RES中可以看到实际的物理内存使用情况.

相关文章

在Linux上编写运行C语言程序,经常会遇到程序崩溃、卡死等异...
git使用小结很多人可能和我一样,起初对git是一无所知的。我...
1. 操作系统环境、安装包准备 宿主机:Max OSX 10.10.5 虚拟...
因为业务系统需求,需要对web服务作nginx代理,在不断的尝试...
Linux模块机制浅析 Linux允许用户通过插入模块,实现干预内核...
一、Hadoop HA的Web页面访问 Hadoop开启HA后,会同时存在两个...