64位内存不足异常
本文关键字:异常 内存不足 64位 | 更新日期: 2023-09-27 18:24:19
im正在尝试创建以下数组
int numOfArrays = 50000;
int lengthOfArrays = 13500;
long[,] unsortedNumbers = new long[numOfArrays,lengthOfArrays];
但我一直在处理一个内存异常。我的目标是x64,我相信我设置了大地址识别标志,见图,但我仍然收到错误。奇怪的是,我在同一个程序中有一个列表,它消耗了16gig的ram,没有任何问题。
系统:
64gig ram
100gig免费高清。
对于32位和64位进程,.NET运行时中的对象大小都有2Gig限制。
但在NET4.5中,您可以增加在运行时使用gcAllowVeryLargeObjects
的64位进程中运行的NET代码的限制。
-
https://learn.microsoft.com/en-us/dotnet/framework/configure-apps/file-schema/runtime/gcallowverylargeobjects-element
-
64位.Net应用程序的内存限制?
如果:,您的NET代码将以64位运行
- 您的平台目标显示"x64"
- 您使用的是NET4,平台目标显示为"AnyCPU",并且您在64位操作系统平台上运行
- 您使用的是NET 4.5,而您的平台目标显示"AnyCPU"并且您已经"偏好32位"关闭/取消选中,并且您正在64位操作系统平台上运行
您正在分配:
50000*135000*8=5400000字节=5029 GB
如果你没有使用NET4.5的奢侈,那么根据你的使用场景,你可以使用BigArray
:
- http://blogs.msdn.com/b/joshwil/archive/2005/08/10/450202.aspx