问题标签 [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.
windows - 对 32 位 Windows 可执行文件使用 /LARGEADDRESSAWARE 的缺点?
我们需要将我们的一个可执行文件与此标志链接,因为它使用大量内存。
但是为什么要给一个EXE文件特殊处理呢。为什么不标准化/LARGEADDRESSAWARE
?
所以问题是:/LARGEADDRESSAWARE
即使你不需要它,使用它有什么问题。为什么不将它用作所有 EXE 文件的标准?
c# - 我可以在 Visual Studio 中设置 LARGEADDRESSAWARE 吗?
我有一个需要为 32 位且需要为 .NET 程序集的 .NET 程序集/LARGEADDRESSAWARE
。
我知道如何做到这一点EditBin
,但我想知道 Visual Studio 2010 中是否有内置方法?或者,是否有人为此编写了 MSBuild 任务?
编辑:这是一个 C# 应用程序,所以遗憾的是没有链接器选项:(
c++ - 由于 LARGEADDRESSAWARE 检测指针算法
我想将我的应用程序切换到LARGEADDRESSAWARE
. 需要注意的问题之一是指针算术,因为指针差异不能再表示为有符号 32b。
有没有办法在大型 C++ 项目中自动查找所有指针减法实例?
如果没有,是否有一些“最省力”的手动或半自动方法来实现这一目标?
linux - Linux/64 位 /LARGEADDRESSAWARE 等效
/LARGEADDRESSAWARE
Windows 允许您通过在 PE 标头 ( )中设置一个标志来将地址空间使用限制为 32 位分辨率。详细说明:设置时,此标志有效地模拟 32 位虚拟地址空间环境(图像在/分配返回地址 <= 0xFFFFFFFF 处加载)
Linux 是否具有同等功能?
c# - 安装后关闭了LARGEADDRESSAWARE?
我使用该editbin /LARGEADDRESSAWARE
命令更改了我的 .NET C# exe,以便它可以寻址大于 2 GB 的内存。这工作正常,我可以运行dumpbin
命令来验证它是否已成功修改。
然后我继续创建一个包含此 exe 的 .msi 包。当我在 Windows 7 目标机器上运行这个 .msi 时,它成功安装了 exe。但是现在,如果我dumpbin
在目标机器上安装的同一个 exe 上运行,则表明它不再支持大于 2 GB 的内存。
这是什么原因造成的?是在目标机器上构建.msi 还是运行.msi 的过程?
c# - LARGEADDRESSAWARE 在 32 位操作系统上没有 /3Gb?
我有一个应用程序,它是用 32 位编译的,因为我们有一些客户仍然使用 32 位。
我们知道我们可以使用的 RAM 有 2GB 的限制。
最近有人告诉我,我们可以标记 exe 应用程序以将此空间增加到 3GB,这可以在我们的可执行文件上使用以下命令来完成:
我还发现了一些关于/3GB
必须在 boot.ini 文件中设置的信息。
我的问题是:
- 这
/3GB
在 64 位操作系统上是必需的吗? - 如果我们在 32 位操作系统上,没有
/3GB
交换机,应用程序启用了 LAA,会发生什么?我们只能使用2GB吗?我们会有应用程序崩溃吗? - 这对 64 位操作系统有影响吗?
c++ - 设置了 LARGEADDRESSAWARE 标志的应用程序获得更少的虚拟内存
我有一个包含一个 EXE 和多个 DLL 的 32 位应用程序。EXE 是用/LARGEADDRESSAWARE
标志集构建的。所以我希望在 64 位操作系统上我应该获得 4 GB 的用户地址空间。但在某些 64 位 Win 7 系统上,我只获得 2 GB 的用户地址空间。
如果重要的话,物理内存是 8 GB。这种行为可能是什么原因?
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 退出
有什么想法吗?
c# - 使用任何 CPU 集编译 C# 应用程序可以处理大 (>2GB) 地址
我在性能测试期间遇到了这个问题。
使用 x86 平台标志编译 C# 控制台应用程序时,未设置大地址感知标志:
输出dumpbin /headers app.exe
:
将标志设置为“Any Cpu”时,生成的 exe 是大地址感知的:
请注意,设置了“应用程序可以处理大 (>2GB) 地址”标志。
我找不到有关此主题的任何文档。所有其他堆栈溢出问题都建议您必须手动执行此操作:
如何在 C# 源代码中启用 IMAGE_FILE_LARGE_ADDRESS_AWARE?
我可以在 Visual Studio 中设置 LARGEADDRESSAWARE 吗?
问题是:这在哪里记录?
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。
问题:
- 如何正确完成这项工作?
- 如何判断我是否有 3GB 内存?