.Net数组大小的局限性

Gra*_*ton 26 c# arrays

我听说.Net的大小有一个严格的限制Array.有人说,可以分配给任何单个实例的最大内存量Array对象(无论它是int[],double[]或您自己的阵列)为2GB.不,如果你有64位机器,2GB限制仍然存在.

我不确定我的印象是否正确.有谁可以确认?

Mar*_*ell 23

在4.5之前的.NET版本中,最大对象大小为2GB.从4.5开始,如果启用了gcAllowVeryLargeObjects,则可以分配更大的对象.请注意,限制string不受影响,但"数组"也应涵盖"列表",因为列表由数组支持.


Bri*_*sen 13

那是正确的.没有单个对象可以大于2 GB.

与32位Windows操作系统一样,在64位Windows操作系统上运行64位托管应用程序时,可以创建的对象大小限制为2GB.

此问题还有其他详细信息和一些有用的链接:CLR 4.0中单个对象的大小仍限制为2 GB?

  • 从.NET 4.5开始,此限制被取消:http://msdn.microsoft.com/en-us/library/hh285054(v = vs.110).aspx. (6认同)