Моя проблема довольно проста: у меня есть файл размером 400 МБ, заполненный 10 000 000 строк данных. Мне нужно перебирать каждую строку, что-то делать и удалять строку из памяти, чтобы избежать переполнения ОЗУ.
Поскольку на моей машине установлено несколько процессоров, моей первоначальной идеей оптимизировать этот процесс было создание двух разных процессов. Можно было бы читать файл по несколько строк за раз и постепенно заполнять список (один элемент списка - одна строка в файле). Другой будет иметь доступ к этому списку и извлечет из него элементы () и обработает их. Это фактически создаст список, который будет расти с одной стороны и уменьшаться с другой.
Другими словами, этот механизм должен реализовывать буфер, который будет постоянно заполняться строками для второго процесса, который нужно обработать. Но, возможно, это не быстрее, чем с помощью:
for line in open('/data/workfile', 'r'):