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

linux – 有些分配器是懒惰的吗?,第1张

概述我在 Linux中编写了一个C语言程序,用于mallocs内存,在循环中运行它,而TOP没有显示任何内存消耗. 然后我用那个记忆做了一些事情,TOP确实显示了内存消耗. 当我在malloc时,我真的“得到了内存”,还是有一个“懒惰”的内存管理,只有在我使用它时才给我内存? (还有一个选项,当我使用它时TOP才知道内存消耗,所以我不确定这个…) 谢谢 在Linux上,malloc使用sbrk()或m 我在 Linux中编写了一个C语言程序,用于mallocs内存,在循环中运行它,而top没有显示任何内存消耗.

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

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

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

谢谢

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

以上是内存溢出为你收集整理的linux – 有些分配器是懒惰的吗?全部内容,希望文章能够帮你解决linux – 有些分配器是懒惰的吗?所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/1039752.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-24
下一篇 2022-05-24

发表评论

登录后才能评论

评论列表(0条)

保存