RhishikeshLathe Ответов: 1

Исключение памяти вне диапазона


Привет ,
В своем приложении я использую очень большие списки точек, т. е.
List<point> Lst=new List<point>(1008000);

Я создаю 25 таких больших списков. Но, к сожалению, CLR выбрасывает исключение из памяти.
Пожалуйста, дайте мне знать, как я могу справиться с этой проблемой.
[edit]добавлен блок кода-OriginalGriff [/edit]

Что я уже пробовал:

Я уже погуглил и обнаружил, что компиляция как x64 решает эту проблему, но я не хочу менять приложение на x64. Есть ли какой-либо другой способ справиться с проблемой памяти вне диапазона?

Kenneth Haugland

Разделите свой список на более мелкие списки или создайте свой собственный, который сделает это за вас.

ZurdoDev

Добавление памяти. Оптимизированный код. Измените то, что вы делаете. Какие еще могут быть варианты?

njammy

Рассмотрите распределенную обработку с помощью нескольких сервисов/транзакций и следите за ней, используя более эффективную модель.

Ramza360

Попробуйте виртуализацию с помощью источника данных.

Beginner Luck

x32 бит и x64 бит понимают int по-разному. пример int в x32 - это int32, а в x64bit-int64. если вы используете базу данных вы знаете что ограничение contain отличается так как int x64 больше чем int x32bit
http://stackoverflow.com/questions/5812406/16-bit-int-vs-32-bit-int-vs-64-bit-int

Patrice T

Можете ли вы сказать нам, что вы делаете с этими данными ?

1 Ответов

Рейтинг:
2

Mehdi Gholam

На машинах x86 (32 бит) объем памяти ограничен 4 ГБ, из которых ОС занимает 1 Гб, что теоретически оставляет 3 ГБ для приложений, но практически Вы ограничены 1,8-2,5 Гб в зависимости от вашего оборудования.

Если следует сильно переосмыслить хранение большого количества данных в памяти, если для этого нет очень веской причины, блокировка/фрагментация данных в большинстве случаев гораздо эффективнее, и вы не будете ограничены своим оборудованием.

Посмотрите на хранилища данных ключ / значение или даже реляционные базы данных, которые были разработаны для обработки данных.


CPallini

Мой 5.

Mehdi Gholam

Ура, парень!