x86 / x64上.net应用程序的内存限制?

时间:2016-09-12 12:10:04

标签: c# .net memory-management

我知道.NET中的所有对象(在x86或x64架构中)存在2 GiB限制,并且由于内存碎片和.NET开销,您可以使用最多1.2-1.4 GB的应用程序获得OutOfMemory Exception之前的虚拟内存。所以当我这样做时:

 int[] array1 = new int[300 * 1000 * 1000];//about 1.1 GB

对于64位操作系统上的32位应用程序,我得到OutOfMemory Exception,这是可预测的。但是当编译为64位时,CLR能够在堆上分配内存,并且不会发生运行时错误。

当应用程序编译为x64而不能为x86平台目标执行时,CLR能够找到连续的内存块会发生什么?

感谢。

0 个答案:

没有答案