byte[2GB]
От: Коваленко Дмитрий Россия http://www.ibprovider.com
Дата: 18.04.19 07:30
Оценка: 3 (1)
Для тестов потребовался массив c 2GB байт.

64-приложение. FW4.7.2.

И нифига не получается выделить. Максимум int.MaxValue-56 байт

  Тестовый код
using System;

namespace ConsoleApp1
{
    class Program
    {
        static void Main(string[] args)
        {
         try
         {
          //var buf=new byte[int.MaxValue]; //OUTOFMEMORY
          //var buf=new byte[int.MaxValue-55]; //OUTOFMEMORY
          var buf=new byte[int.MaxValue-56]; //ok

          buf[0]=123;
         }
         catch(Exception e)
         {
          Console.WriteLine("{0}",e.Message);
         }
        }
    }
}

Интернеты предлагают указать <gcAllowVeryLargeObjects enabled="true" /> в конфигурационном файле. Указал, не помогает

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

Что я не так сделал?

Заранее благодарю за помощь!
-- Пользователи не приняли программу. Всех пришлось уничтожить. --
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.