Массив сожрал память,что делать? - 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;

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

12   голосов , оценка 4.167 из 5
Похожие ответы