Недавно я столкнулся с ошибкой OutOfMemory в программе из-за (я полагаю) чрезмерного использования массивов и двойных многомерных массивов (размер которых составляет около 5000x60 элементов). Поэтому я ищу альтернативу хранению информации.
Являются ли базы данных единственной альтернативой? Или есть какой-то другой способ хранения информации из массивов, чтобы я мог освободить память? Я также читал о возможности ручного выделения памяти (или разбиения ее на куски? Я не помню, что именно это было), но я полагаю, что это не вариант, потому что все массивы и объекты со временем будут увеличиваться в размерах, так что раньше или позже я, вероятно, даже достигну (теоретически) пределов моего физического барана. Хотя я могу ошибаться.
Я не прошу огромных примеров кода, ссылок на хорошие учебники или чтения (книги тоже подойдут, хотя я смогу заказать их в Германии без затрат на доставку в миллиарды долларов ;-)) было бы идеально.
Также: нет, я никогда ничего не делал с базами данных, но я готов чему-нибудь научиться.
Заранее спасибо за любую помощь.
edit: исправлено «двойной массив» в «многомерный массив».
edit2: Я думал, что может быть «универсальное» решение проблемы с огромными массивами, но вы доказали, что я ошибался. Потому что трудно найти альтернативу, если люди не знают, что я делаю, вот краткий обзор того, что я делаю (в основном для статистических целей):
- Чтение данных из файла CSV, каждая строка напоминает пользовательский объект MyClass1, содержащий около 60 объектов MyClass2.
- Итерация по всем экземплярам MyClass1, добавление или редактирование свойств каждого из объектов MyClass2, в зависимости от различных условий.
Если потребуется дополнительная информация, я обязательно ее опубликую. Причина, по которой я не публикую код, заключается в том, что я не знаю, какие строки из 4000 выбрать. Я не пытаюсь скрыть какую-либо информацию, потому что кодирую что-то сверхсекретное, я просто не знаю, что еще может быть полезным.
edit3: Вопрос: «Вы могли бы обрабатывать каждую строку за раз, или вам сначала нужен контекст всего файла?»
- Мне нужен контекст всего файла. Так, например, MyClass1 [4000] [0] зависит от данных из MyClass1 [0] [0], MyClass1 [1] [0] и т. Д. Дополнительная информация: чтение файла CSV и создание «пустых» объектов работает нормально. Ошибка появляется позже, когда я перебираю все объекты MyClass1.