tony joseph david Ответов: 1

Чтение файла построчно - упр памяти и производительности


Я пытаюсь выяснить, как лучше всего читать большой текстовый файл (>5GB) строка за строкой в Python. Каждая строка также будет обрабатываться последовательно (например, нарезка строки и нажатие ее на какую-то функцию).

Мне интересно, можно ли это сделать с помощью параллельных потоков / многопоточности в Python, чтобы заставить его работать быстрее?? Кроме того, я хотел бы свести к минимуму объем памяти, так как есть и другие запущенные процессы.

Любая помощь или толчок в правильном направлении очень ценятся.

Что я уже пробовал:

python readline, readlines и streaming

1 Ответов

Рейтинг:
0

Dave Kreskowiak

Поскольку файл может быть прочитан только одним потоком, вы должны иметь компонент, выполняющий все чтение и распределяющий строки для обработки в ваших потоках обработки.

Имейте в виду, что многопоточность автоматически не ускоряет какой-либо процесс. Это зависит от проблемы и объема обработки, которую вы выполняете, сколько времени занимает каждый проход в обработке, какие узкие места находятся в этом процессе ...

Если основным узким местом является ввод-вывод (чтение файла с любого устройства или внешнего источника), потоковая обработка ничего для вас не сделает. Ваши потоки будут остановлены в ожидании чего - то для обработки.