-2

在我的 C# 代码中,我需要包含一个大小为 13805*55223 的矩阵;我相信这不是那么大。

为了克服 RAM 的限制,我使用了 gcAllowVeryLargeObjects,并且我还没有选中更喜欢 32 位系统。

做了所有这些,我仍然面临“数组维度超出支持的范围”错误!

感谢您为处理此问题提供的任何帮助。

4

1 回答 1

3

请尝试以下程序是否适用于您的系统。它创建一个大小为 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>
于 2016-02-10T08:58:21.547 回答