有些分配器是懒惰的吗?

2023-11-23

我在 Linux 中编写了一个 C 程序,该程序分配内存,循环运行它,并且 TOP 没有显示任何内存消耗。

然后我用该内存做了一些事情,并且 TOP 确实显示了内存消耗。

当我 malloc 时,我是否真的“获取内存”,或者是否存在“惰性”内存管理,仅在我使用内存时才给我内存?

(还有一个选项是TOP只在我使用它时知道内存消耗,所以我不确定这个..)

Thanks


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

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

有些分配器是懒惰的吗? 的相关文章

随机推荐