gpt4 book ai didi

linux - 谁在 Linux 中调用 calloc() 时清零页面?

转载 作者:太空狗 更新时间:2023-10-29 12:01:44 24 4
gpt4 key购买 nike

我知道实现者可以选择是要将 malloc 页面归零还是让操作系统给他一个归零页面(用于更多优化目的)。

我的问题很简单 - 在 Linux 内核 3.16 和 gcc 4.8.4 附带的 Ubuntu 14.04 LTS 中,谁会清零我的页面?它是在用户空间还是内核空间?

最佳答案

这可能取决于内存的来源。 calloc 代码是用户态,并将被进程重新使用的内存页清零。当内存先前被使用然后被释放,但没有返回给操作系统时,就会发生这种情况。但是,如果页面是新分配给进程的,它会被操作系统清除为 0(出于安全目的),因此不需要通过 calloc 清除。这意味着 calloc 可能比调用 malloc 后跟 memset 更快,因为它可以跳过 memset 如果它知道它已经归零了。

关于linux - 谁在 Linux 中调用 calloc() 时清零页面?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32919323/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com