zoukankan      html  css  js  c++  java
  • NET Framework 4.5新特性 (三)64位平台支持大于2 GB大小的数组

    64位平台.NET Framework数组限制不能超过2GB大小。这种限制对于需要使用到大型矩阵和向量计算的工作人员来说,是一个非常大问题。

     

    无论RAM容量有多大有多少,一旦你使用大型矩阵和向量计算工作的时候,经常会抛出一个System.OutOfMemoryException异常,如下图所示:

     

    参考程序

     class Program
        {
            private static void Main(string[] args)
            {
                int arrysize = 150000000;
                var large=new decimal[arrysize];
                Console.ReadLine();
    
            }
        }

    值得庆幸的是。NET Framework 4.5引入了一个配置属性在运行时模式,使阵列总大小大于2 GB 64位应用程序。

    您只需要启用gcAllowVeryLargeObjects元素控制.NET garbage-collection system(垃圾收集系统)的行为就可以了。

    参考模板

    <?xml version="1.0" encoding="utf-8" ?>
    <configuration>
        <startup> 
            <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.5" />
        </startup>
        <runtime>
          <gcAllowVeryLargeObjects enabled="true" /> 
        </runtime>
    </configuration>

    可以看下结果没有抛出异常,可以正常的运行,如下

    这种方式,可以更好地利用可用的内存使用巨大的数组时在64位平台上。

    你可以把这个设置与garbage-collection system(垃圾回收系统)结合改进。但是.NET Framework 4.5与.NET Framework 4.0数组的元素的最大数量仍然一样。

     

     

     

     

  • 相关阅读:
    人脸识别的一些网站
    41、过滤驱动程序
    13、ActiveX控件
    42、驱动程序调试
    20、宽字符串与字符串间的相互转换
    14、HOOK和数据库访问
    43、Windows驱动程序模型笔记(一)
    7、注册表读写的一个例子
    12、动态链接库,dll
    40、总结IRP,handling IRPs,Part II
  • 原文地址:https://www.cnblogs.com/david1989/p/3855977.html
Copyright © 2011-2022 走看看