gpt4 book ai didi

c++ - 如何换出内存块?

转载 作者:太空宇宙 更新时间:2023-11-03 10:36:32 24 4
gpt4 key购买 nike

如何通过 malloc() 或 new 分配内存块:

  • 立即换出,
  • 或延迟初始化。

事实上,我正在尝试保留一个地址空间。如何实现?

附言。如何从用户空间验证内存块是否被换出?

最佳答案

malloc 通常使用 mmap 实现,因此如果您使用 malloc,您无论如何都会得到您想要的行为。毕竟,为什么在不能保证新页面会立即初始化的情况下分配内存会强制其他页面离开缓存?我知道 Open BSD 以这种方式实现 malloc,如果您的分配大于某个限制,GNU 的 C 库将使用 mmap。我认为它只有几页。

我不知道 Windows 如何处理所有这一切,但请查看 VirtualAlloc 文档,看看它是否具体说明了它的用途。如果它记录了 Windows 的 malloc 缓存了它的页面,那么你就有了答案,你应该使用 VirtualAlloc。

关于c++ - 如何换出内存块?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2517946/

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