Вы можете выделить НАМНОГО БОЛЬШЕ памяти, чем ~ 2 ГБ, создав приложение для 64-разрядной архитектуры, для чего необходимо создать новую конфигурацию сборки в Visual Studio, и эта сборка приложения будет работать только на 64-разрядной версии. версии Windows. В .NET, используя опцию по умолчанию «Любой ЦП» для вашего приложения, я обнаружил, что я могу выделить только около 1,5 ГБ памяти из кучи (даже на 64-разрядной машине Windows), что происходит потому, что приложение на самом деле работает только в 32-битном режиме, когда он встроен в режим «Любой процессор». Но, компилируя архитектуру x64, вы можете выделить намного больше памяти из кучи во время выполнения вашего приложения, и я объясню, как создать сборку x64 для вашего приложения ниже:
Опять же, используя обычную (по умолчанию) опцию сборки «Любой ЦП» в вашем проекте .NET, ваше приложение ВСЕГДА будет работать в 32-битном режиме, даже в 64-битной ОС Windows. Поэтому вы не сможете выделить более 1,5-2 ГБ оперативной памяти во время выполнения приложения. Чтобы запустить приложение .NET в истинном 64-разрядном режиме, вам необходимо зайти в диспетчер конфигурации сборки и создать тип сборки для архитектуры x64, а затем перекомпилировать свою программу для x64 явно, используя этот тип сборки. Параметр режима сборки x64 можно создать для вашего решения .NET, выполнив следующие действия:
-
На панели «Обозреватель решений» Visual Studio щелкните правой кнопкой мыши значок «Решение» и выберите «Configuration Manager» во всплывающем меню. Откроется диалоговое окно «Диспетчер конфигурации» для файла .NET Solution.
-
Справа, в верхней части диалогового окна «Диспетчер конфигурации», нажмите стрелку вниз и выберите параметр «& ltnew & gt». Откроется диалоговое окно «Новая платформа решений».
-
В диалоговом окне «Новая платформа решений» для параметра «Платформа» выберите «x64» в раскрывающемся меню. Затем нажмите кнопку «ОК», и новый вариант сборки x64 теперь будет доступен в диалоговом окне Configuration Manager.
-
Затем в диалоговом окне «Диспетчер конфигурации» выберите «x64» в раскрывающемся меню «Active Solution Platform». Нажмите кнопку «Закрыть».
-
В панели «Обозреватель решений» Visual Studio щелкните правой кнопкой мыши значок CS Project и выберите параметр «Свойства» во всплывающем меню (последний параметр в нижней части этого меню). Откроется окно свойств проекта CS.
-
В левой части окна свойств CS Project нажмите на вкладку «Build», чтобы отобразить свойства сборки для вашего проекта кода. В верхней части этого окна обратите внимание, что «Платформа» должна теперь сказать «x64» (в отличие от опции «Любой процессор» по умолчанию). Если в раскрывающемся списке «Платформа» не отображается «x64», выберите его сейчас.
-
Затем просто соберите свой код и в папке «bin» теперь у вас должна быть папка x64 с новой 64-битной сборкой вашего приложения.
Использование 64-битной сборки вашего приложения в 64-битной ОС Windows позволит вашей программе выделять гораздо больше, чем ~ 2 ГБ памяти, предположительно до 2 ^ 64 адресных пространств (если у вас есть ОЗУ и дисковое пространство). доступны, которые являются реальными ограничивающими факторами на момент написания этого ответа).
Если в вашем приложении ВСЕ ЕЩЕ не хватает памяти, вы также можете увеличить размер файла подкачки памяти Windows. В Windows файл подкачки позволяет операционной системе перемещать память из ОЗУ на диск, если ему не хватает места в ОЗУ. Но перемещение разделов оперативной памяти на диск и с него сопряжено с большими временными затратами, поэтому это может серьезно сказаться на производительности вашего приложения. Независимо от производительности, увеличив размер страницы, вы можете (теоретически) сделать файл подкачки настолько большим, насколько доступно свободное место на диске C: вашего компьютера с Windows. В этом случае ваше приложение сможет выделить, например, до 4 ТБ памяти (или любой другой объем памяти, на который установлен размер файла подкачки) во время выполнения вашей программы. Чтобы изменить параметры файла подкачки для вашего компьютера с Windows, выполните следующие действия:
-
Откройте диалоговое окно «Свойства системы», щелкнув правой кнопкой мыши «Этот компьютер» и выбрав пункт «Свойства» во всплывающем меню. Это также может быть выполнено в более поздних версиях Windows (Windows 10, Win 2012 Server и т. Д.), Перейдя в «Пуск» & gt «Панель управления» & gt «Система и безопасность» & gt «Система».
-
В левой части диалогового окна «Система» выберите параметр «Дополнительные свойства системы». Появится вкладка «Дополнительно» устаревшего диалога «Свойства системы» для Windows.
-
На вкладке «Дополнительно» диалогового окна «Свойства системы» нажмите кнопку «Настройки» в поле «Производительность». Откроется диалоговое окно «Параметры производительности».
-
В диалоговом окне «Параметры производительности» перейдите на вкладку «Дополнительно», чтобы увидеть текущие настройки размера файла страницы памяти Windows.
-
Чтобы увеличить размер файла подкачки, нажмите кнопку «Изменить», и откроется диалоговое окно «Виртуальная память».
-
В диалоговом окне «Виртуальная память» выберите диск «C:», затем в разделе «Нестандартный размер» установите размеры «Начальный» и «Максимальный». Вы можете использовать любой размер вплоть до максимального свободного места на диске C :, но внесение этого изменения зарезервирует это пространство для файла подкачки на жестком диске.
-
Затем нажмите «ОК» во всех диалоговых окнах, чтобы зафиксировать новые настройки. Затем перезагрузите компьютер, чтобы убедиться, что все изменения были выполнены правильно и что новые параметры файла подкачки работают.
В любом случае, я надеюсь, что это поможет людям понять, почему они могут столкнуться с проблемой ограничения памяти размером 1,5–2 ГБ в приложении .NET даже при работе на 64-разрядной машине с Windows. Это может быть очень запутанным вопросом для людей, и я надеюсь, что мое объяснение имеет смысл. Пожалуйста, не стесняйтесь присылать мне вопросы об этом ответе, если это необходимо.