在我的 C# 代码中,我需要包含一个大小为 13805*55223 的矩阵;我相信这不是那么大。
为了克服 RAM 的限制,我使用了 gcAllowVeryLargeObjects,并且我还没有选中更喜欢 32 位系统。
做了所有这些,我仍然面临“数组维度超出支持的范围”错误!
感谢您为处理此问题提供的任何帮助。
在我的 C# 代码中,我需要包含一个大小为 13805*55223 的矩阵;我相信这不是那么大。
为了克服 RAM 的限制,我使用了 gcAllowVeryLargeObjects,并且我还没有选中更喜欢 32 位系统。
做了所有这些,我仍然面临“数组维度超出支持的范围”错误!
感谢您为处理此问题提供的任何帮助。
请尝试以下程序是否适用于您的系统。它创建一个大小为 13805*55223 的一维 int 数组。对于这些数组大小,保留了约 3GB 的内存,并且在我的系统上运行良好。
程序.cs:
using System;
namespace arrtest
{
class Program
{
public static void Main(string[] args)
{
Console.WriteLine("Is64BitProcess :"+ Environment.Is64BitProcess);
int [] arr = new int[13805*55223];
Console.Write("Press any key to continue . . . ");
Console.ReadKey(true);
}
}
}
应用程序配置:
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<startup>
<supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.0" />
</startup>
<runtime>
<gcAllowVeryLargeObjects enabled="true" />
</runtime>
</configuration>