LargeAddressAware
.Net客户端程序开发时存在x86(32 位)和 x64(64 位)是两种不同的目标平台架构
最大区别
内存
x86(32 位):
进程的虚拟地址空间最大为 4GB(2³² = 4,294,967,296 字节)。
其中,默认情况下用户模式可用空间仅约 2GB(其余 2GB 分配给内核模式)。
即使通过 LargeAddressAware 标志优化,在 64 位系统上最多也只能使用 4GB,在 32 位系统上配合特殊配置可达到 3GB。
对于需要处理大型数据集(如 GB 级内存缓存、高分辨率图像)的程序,x86 容易出现 “内存不足” 错误。
x64(64 位):
理论上支持的虚拟地址空间高达 16EB(2⁶⁴),但实际受限于操作系统和硬件,通常可支持 数十 GB 甚至 TB 级内存(例如 Windows 10/11 专业版支持 up to 2TB 内存)。
完全没有 x86 的 4GB 上限限制,适合内存密集型应用(如大数据处理、科学计算、复杂 3D 渲染)
问题
如何在x86平台下突破内存限制
回答
LargeAddressAware
使用办法
nuget:dotnetCampus.LargeAddressAware
.csproj 文件增加
<PropertyGroup>
<EnableLargeAddressAware>true</EnableLargeAddressAware>
</PropertyGroup>
努力到无能为力,拼搏到感动自己

浙公网安备 33010602011771号