У меня есть несколько больших (~ 100 Мб) файлов, которые я регулярно обрабатываю. Хотя я пытаюсь удалить ненужные структуры данных во время обработки, потребление памяти слишком велико. Мне было интересно, если есть способ, чтобы эффективно управлять большими объемами данных, например .:Использование памяти в больших манипуляциях/обработке данных
def read(self, filename):
fc = read_100_mb_file(filename)
self.process(fc)
def process(self, content):
# do some processing of file content
Есть ли дублирование структур данных? Разве не более эффективно использовать память для использования атрибута класса, такого как self.fc?
Когда следует использовать сборку мусора? Я знаю о модуле gc, но могу ли я назвать его после того, как я, например, del fc
?
обновление
p.s. 100 Мб не проблема сама по себе. но конвертирование с плавающей точкой, дальнейшая обработка значительно увеличивает как рабочий набор, так и виртуальный размер (я нахожусь в Windows).
Что в файле? Что такое обработка? –
временные ряды, разделенные запятыми, которые я уменьшаю до некоторых понятных суммарных переменных. – SilentGhost
Не могли бы вы быть более конкретными, может быть, представите небольшой пример? – oefe