gpt4 book ai didi

winapi - 使用 CreateFileMapping 在页面文件中分配页面的目的是什么?

转载 作者:行者123 更新时间:2023-12-02 05:41:23 28 4
gpt4 key购买 nike

函数CreateFileMapping可用于在页面文件中分配空间(如果第一个参数是INVALID_HANDLE_VALUE)。分配的空间稍后可以内存映射到进程虚拟地址空间。

为什么我要这样做而不是仅使用 VirtualAlloc

看起来这两个函数几乎做同样的事情。 VirtualAlloc 分配的内存可能在某些时候被推送到页面文件。为什么我需要一个专门请求在第一个实例中分配我的页面的 API?我为什么要关心我的私有(private)页面所在的位置?

这只是向操作系统暗示我预期的内存使用模式吗? (即,前者是更积极地交换这些页面的提示。)

或者它只是在 32 位进程上处理非常大的数据集时的一种便捷方法? (即,我可以使用 CreateFileMapping 进行 >4Gb 分配,然后根据需要内存映射较小的空间 block 。使用页面文件可以节省我手动管理自己的文件集以“交换”到的工作。)

PS。这个问题是由我最近阅读的一篇文章引发的: http://blogs.technet.com/markrussinovich/archive/2008/11/17/3155406.aspx

最佳答案

来自 CreateFileMappingFunction:

A single file mapping object can be shared by multiple processes.

虚拟内存可以在多个进程之间共享吗?

关于winapi - 使用 CreateFileMapping 在页面文件中分配页面的目的是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/307060/

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