64位系统上32位应用程序的内存分配限制

时间:2010-02-08 16:04:42

标签: windows memory-management malloc

对于64位系统上的32位应用程序(Windows 2003 SP2 x64,具体为2GB),malloc(我猜是虚拟堆?)的最大限制是什么?

我基本上是想把一个程序推到一个没有运气的程序之外。所以我想知道是否适用于Win x64位平台上的所有32位应用程序。

谢谢!

2 个答案:

答案 0 :(得分:7)

您应该将应用程序与/LARGEADDRESSAWARE链接,以使应用程序可以使用超过2GB的应用程序。然后,在32位应用程序中,在64位操作系统上最多可以使用4GB。

答案 1 :(得分:1)

32位应用程序具有虚拟地址空间,允许在64位版本的Windows上处理高达4GB的空间。

MSDN上的Win32和COM Development doc中的4-Gigabyte Tuning部分解释了 / LARGEADDRESSAWARE 链接器开关。将其打开将允许32位应用程序最多可以处理4GB内存。

请参阅MSDN Library中的Memory Management section。使用WIN32内存管理服务功能可提供C运行时库中不可用的功能。您是否需要此功能取决于您。

相关问题