问题标签 [large-address-aware]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
3 回答
27870 浏览

windows - 对 32 位 Windows 可执行文件使用 /LARGEADDRESSAWARE 的缺点?

我们需要将我们的一个可执行文件与此标志链接,因为它使用大量内存。
但是为什么要给一个EXE文件特殊处理呢。为什么不标准化/LARGEADDRESSAWARE

所以问题是:/LARGEADDRESSAWARE即使你不需要它,使用它有什么问题。为什么不将它用作所有 EXE 文件的标准?

0 投票
4 回答
41883 浏览

c# - 我可以在 Visual Studio 中设置 LARGEADDRESSAWARE 吗?

我有一个需要为 32 位且需要为 .NET 程序集的 .NET 程序集/LARGEADDRESSAWARE

我知道如何做到这一点EditBin,但我想知道 Visual Studio 2010 中是否有内置方法?或者,是否有人为此编写了 MSBuild 任务?

编辑:这是一个 C# 应用程序,所以遗憾的是没有链接器选项:(

0 投票
5 回答
2313 浏览

c++ - 由于 LARGEADDRESSAWARE 检测指针算法

我想将我的应用程序切换到LARGEADDRESSAWARE. 需要注意的问题之一是指针算术,因为指针差异不能再表示为有符号 32b。

有没有办法在大型 C++ 项目中自动查找所有指针减法实例?

如果没有,是否有一些“最省力”的手动或半自动方法来实现这一目标?

0 投票
2 回答
1893 浏览

linux - Linux/64 位 /LARGEADDRESSAWARE 等效

/LARGEADDRESSAWAREWindows 允许您通过在 PE 标头 ( )中设置一个标志来将地址空间使用限制为 32 位分辨率。详细说明:设置时,此标志有效地模拟 32 位虚拟地址空间环境(图像在/分配返回地址 <= 0xFFFFFFFF 处加载)

Linux 是否具有同等功能?

0 投票
3 回答
1710 浏览

c# - 安装后关闭了LARGEADDRESSAWARE?

我使用该editbin /LARGEADDRESSAWARE命令更改了我的 .NET C# exe,以便它可以寻址大于 2 GB 的内存。这工作正常,我可以运行dumpbin命令来验证它是否已成功修改。

然后我继续创建一个包含此 exe 的 .msi 包。当我在 Windows 7 目标机器上运行这个 .msi 时,它成功安装了 exe。但是现在,如果我dumpbin在目标机器上安装的同一个 exe 上运行,则表明它不再支持大于 2 GB 的内存。

这是什么原因造成的?是在目标机器上构建.msi 还是运行.msi 的过程?

0 投票
1 回答
748 浏览

c# - LARGEADDRESSAWARE 在 32 位操作系统上没有 /3Gb?

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

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

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

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

我的问题是:

  • /3GB在 64 位操作系统上是必需的吗?
  • 如果我们在 32 位操作系统上,没有/3GB交换机,应用程序启用了 LAA,会发生什么?我们只能使用2GB吗?我们会有应用程序崩溃吗?
  • 这对 64 位操作系统有影响吗?
0 投票
2 回答
1613 浏览

c++ - 设置了 LARGEADDRESSAWARE 标志的应用程序获得更少的虚拟内存

我有一个包含一个 EXE 和多个 DLL 的 32 位应用程序。EXE 是用/LARGEADDRESSAWARE标志集构建的。所以我希望在 64 位操作系统上我应该获得 4 GB 的用户地址空间。但在某些 64 位 Win 7 系统上,我只获得 2 GB 的用户地址空间。

如果重要的话,物理内存是 8 GB。这种行为可能是什么原因?

0 投票
4 回答
22053 浏览

c# - LargeAddressAware Visual Studio 2015 C#

所以今天我决定更新到 Visual Studio 2015(之前运行 RC 版本没有任何困难)但现在我的项目不喜欢/LARGEADDRESSAWARE命令行事件。

我有一个构建后事件:

但是我收到以下错误:

命令“调用“C:\Program Files (x86)\Microsoft Visual Studio 14.0\Common7\IDE..\tools\vsvars32.bat”editbin /largeaddressaware "C:\...\bin\Debug\Application.exe" " 以代码 9009 退出

有什么想法吗?

0 投票
1 回答
4648 浏览

c# - 使用任何 CPU 集编译 C# 应用程序可以处理大 (>2GB) 地址

我在性能测试期间遇到了这个问题。

使用 x86 平台标志编译 C# 控制台应用程序时,未设置大地址感知标志:

输出dumpbin /headers app.exe

将标志设置为“Any Cpu”时,生成的 exe 是大地址感知的:

请注意,设置了“应用程序可以处理大 (>2GB) 地址”标志。

我找不到有关此主题的任何文档。所有其他堆栈溢出问题都建议您必须手动执行此操作:

如何在 C# 源代码中启用 IMAGE_FILE_LARGE_ADDRESS_AWARE?

我可以在 Visual Studio 中设置 LARGEADDRESSAWARE 吗?

在 32 位应用程序中使用 3Gb 内存

问题是:这在哪里记录?

0 投票
1 回答
482 浏览

c++ - 在 Win 7 64bit 下使用 /3gb 开关 (-GF LARGEADDRESSAWARE ) 运行 32bit Borland XE2 应用程序?

正如标题所述,我在 win 7 64 位下运行一个 32 位应用程序。该应用程序是在 Embarcadero XE2 中用 C++ 编写的。我需要超过 2GB 的内存。

脚步:

  • 我启用了 3GB 开关并重新启动了电脑。
  • 我尝试添加-GF: LARGEADDRESSAWARE到项目选项/C++ 链接器/输出标志,但随后链接失败。它说:“失败的命令GF:”或类似的东西。

然后我在论坛上发现您应该在 FLAGS 部分下的 .bpr 文件中手动执行此操作。我添加了标志,然后链接了项目。但是,我在应用程序中的可用内存指示器告诉我我仍然低于 2 GB。

问题:

  1. 如何正确完成这项工作?
  2. 如何判断我是否有 3GB 内存?