У меня есть несколько больших (~ 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).