gpt4 book ai didi

Windows:调整共享内存大小

转载 作者:可可西里 更新时间:2023-11-01 13:11:07 29 4
gpt4 key购买 nike

当我在 Windows 上创建共享内存段时(如 CreateFileMapping(INVALID_HANDLE_VALUE, ...)),除了创建更大的段和复制数据之外,是否有任何方法可以调整它的大小?

我在 MSDN 中了解到文件映射具有固定大小,但是否有可能在同一内存上创建新映射?就像在 Linux 中一样,您可以在其中使用 shm_open(),然后再次使用 ftruncate()mmap()

最佳答案

简短的回答是否定的——文件映射一旦创建就无法调整其大小。您描述的创建/复制序列是我所知道的使用系统页面文件支持的文件映射来完成此操作的唯一方法。

也就是说,您可以自己管理支持映射的文件并完成此操作。从您自己的零初始化数据文件开始,并为您对 CreateFileMapping() 的调用指定有效的句柄。

当您需要调整大小时,关闭映射、扩展文件并重新创建映射。这将需要在增长/截断操作之间进行某种同步 - 这不是微不足道的,但也不应该太困难。

说到底,还是老样子。增加了复杂性与性能。

关于Windows:调整共享内存大小,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6254637/

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