gpt4 book ai didi

memory-mapped-files - 对于太大而无法一次进行内存映射的文件,每次建议的字节数是多少?

转载 作者:行者123 更新时间:2023-12-04 07:06:46 25 4
gpt4 key购买 nike

我正在使用内存映射打开文件。这些文件显然太大了(在 32 位 PC 上为 6GB),之前无法映射。所以我想每次映射它的一部分并在下一个映射中调整偏移量。

每个映射是否有最佳字节数,或者有没有办法确定这样的数字?

谢谢。

最佳答案

没有最佳尺寸。对于 32 位进程,总共只有 4 GB 的地址空间,通常只有 2 GB 可用于用户模式进程。然后,这 2 GB 被来自 exe 和 DLL、堆分配、线程堆栈等的代码和数据分段。鉴于此,您可能不会找到超过 1 GB 的连续空间来将文件映射到内存中。

最佳数量取决于您的应用程序,但我担心将超过 512 MB 的数据映射到 32 位进程中。即使将自己限制为 512 MB,您也可能会遇到一些问题,具体取决于您的应用程序。或者,如果您可以使用 64 位,那么将多个 GB 的文件映射到内存中应该没有问题 - 您的地址空间非常大,应该不会引起任何问题。

您可以使用像 VirtualQuery 这样的 API 来查找最大的连续空间 - 但是当您删除大量地址空间时,您实际上会强制发生内存不足错误。

编辑:我刚刚意识到我的答案是特定于 Windows 的,但您没有在讨论哪个平台。我认为其他平台对内存映射文件也有类似的限制因素。

关于memory-mapped-files - 对于太大而无法一次进行内存映射的文件,每次建议的字节数是多少?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1031073/

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