Массив сожрал память,что делать? - C#
Формулировка задачи:
Добрый день!
Есть данные ,которые сохранены в бинарном формате.В данном файле в заголовке описываются поля и их тип.
Например:<А>Int32,<B>String,<C>Double итд
Данные сохранены построчно.Те <A>[0]<B>[0]<C>[0]...<XX>[0]
<A>[1]<B>[1]<C>[1]...<XX>[1]
Бинарные данные занимают объем порядка 370 Мбайт.Проблема есть с созданием массива в программе.
Он занимает огромный объем те порядка 4Гбайт.
Пример.Я использую List<List<object>> те заполняю List<object> согласно описанию типов данных(сдвигая счетчик байтов ,согласно типам полей) и добавляю потом в List основной.
Сейчас у меня 22 млн записей.Три поля это такие типы как UInt32,Double,UInt32 те 4+8+4=16 байт,но откуда берутся в памяти еще почти 200 байт на строку...Есть идеи как сделать лучше?
Сделать N кол-во массивов под каждый тип N данных?
Решение задачи: «Массив сожрал память,что делать?»
textual
Листинг программы
n_byte = n_byte + value2.Length+1;
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д