【问题标题】:Can a 32-bit program use more than 4GB of memory on a 64-bit OS?32 位程序能否在 64 位操作系统上使用超过 4GB 的内存?
【发布时间】:2011-08-20 11:48:19
【问题描述】:

在 64 位操作系统上运行的 32 位程序是否能够使用超过 4GB 的内存(如果可用)?

【问题讨论】:

标签: memory memory-management 32-bit


【解决方案1】:

仅通过将 4GB 内存范围显式映射到其地址空间。

【讨论】:

    【解决方案2】:

    简短的回答是:是的。 更长的答案取决于。有一个对页面重新映射的硬件支持,它基本上为您的程序提供了一个将几页窗口放入更大的内存区域。 然而,这个窗口应该由程序本身管理,不会得到内存管理器的支持。有一些程序示例,例如 Windows 上的 SQL。 但是,一般来说这是一个坏主意,程序应该将自身限制为 4GB 或移动到 64 位 :)

    【讨论】:

      【解决方案3】:

      通常,您被限制在 2GB 的地址空间内,您的所有分配及其开销、碎片等都必须与内存映射文件(包括您的程序和它使用的 DLL)一起适应。这实际上将您限制为 1.5GB。

      具有特殊配置,例如/3GB,您可以为应用程序提供超过 2GB 的可用空间,但这样做会抢夺内核空间,消耗文件缓存、处理能力等。

      在Win32上,PAE support可以使用更多,但是不透明,需要自己管理。

      【讨论】:

        猜你喜欢
        • 2012-12-02
        • 2015-11-05
        • 2011-07-07
        • 2015-09-26
        • 2013-07-30
        • 2014-07-05
        • 1970-01-01
        • 2012-09-01
        • 1970-01-01
        相关资源
        最近更新 更多