代码之家  ›  专栏  ›  技术社区  ›  t.g.

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

  •  2
  • t.g.  · 技术社区  · 17 年前

    谢谢。

    2 回复  |  直到 17 年前
        1
  •  3
  •   Michael    17 年前

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

    最佳数量取决于您的应用程序,但我担心将超过512 MB的内存映射到32位进程中。即使将自己限制在512 MB,根据您的应用程序,您也可能会遇到一些问题。或者,如果你可以使用64位,那么将数GB的文件映射到内存中应该没有问题——你的地址空间太大了,应该不会造成任何问题。

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

        2
  •  0
  •   graham.reeds    17 年前

    文件需要内存映射吗?

    我在733Mhz的PIII上编辑了8gb的视频文件(不愉快,但可行)。

    推荐文章