【问题标题】:LARGEADDRESSAWARE Without /3Gb on 32bit os?LARGEADDRESSAWARE 在 32 位操作系统上没有 /3Gb?
【发布时间】:2014-07-03 10:39:10
【问题描述】:

我有一个应用程序,它是用 32 位编译的,因为我们有一些客户仍然使用 32 位。

我们知道我们可以使用的 RAM 有 2GB 的限制。

最近有人告诉我,我们可以标记 exe 应用程序以将此空间增加到 3GB,这可以在我们的可执行文件上使用以下命令来完成:

Editbin /LARGEADDRESSAWARE (LAA)

我还发现了一些关于 /3GB 的信息,必须在 boot.ini 文件中设置。

我的问题是:

  • 在 64 位操作系统上是否需要 /3GB
  • 如果我们使用的是 32 位操作系统,没有 /3GB 开关,应用程序启用了 LAA,会发生什么情况?我们只能使用2GB吗?应用程序会崩溃吗?
  • 这对 64 位操作系统有影响吗?

【问题讨论】:

    标签: c# .net windows memory-management large-address-aware


    【解决方案1】:

    我们可以使用 2GB 内存的限制

    它与 RAM 无关,一个 32 位进程有 2 GB 的地址空间。如何使用它取决于您的程序,内存映射文件是超出 2 GB 寻址限制的标准技术。

    在 64 位操作系统上是否需要 /3GB?

    在 64 位操作系统上不支持。 32 位操作系统也不再支持它,现代视频适配器吞噬了太多的地址空间,无法为操作系统留出足够的空间。

    如果我们使用 32 位操作系统会发生什么

    什么都没有发生,您仍然有 2 GB 的地址空间。如果这还不足以完成工作,那么您需要认真考虑更改您的系统要求。仍然为过去十年停滞不前的客户提供服务已经没有什么意义了,如今 64 位操作系统已成为常态。

    这对 64 操作系统有影响吗?

    是的,您将获得 4 GB 的地址空间。操作系统不再碍事。

    【讨论】:

    • 首先:我完全同意,如果我们可以说我们只支持 64 位操作系统,我将是这里最幸福的人,但不幸的是,事实并非如此。那么如果 32 位操作系统不支持 /largeaddressaware 会有什么影响呢? (我们的客户付费接收来自 MS 的 Win xp 更新,它让您了解如何很难强迫他们在任何地方使用 64 位)。我不确定视频适配器和我们的 .net 应用程序之间的关系?
    • 问了又答,一点效果都没有。
    • 好的,但是从什么开始就没有效果了?特定版本的 Windows?如果是,是哪一个?
    • 它没有任何作用,因为没有地址可以大于 0x7fffffff。现在应该有点明显了。
    • 嗯,但是如果已经创建了,就说明已经使用过一次了?那么发生了什么变化?这个 0x7fffff 是从哪里来的?我本来期望 0xffffff
    猜你喜欢
    • 2010-09-07
    • 2015-09-26
    • 2013-08-29
    • 2012-07-26
    • 2011-12-18
    • 1970-01-01
    • 1970-01-01
    • 2011-02-20
    • 2013-07-15
    相关资源
    最近更新 更多