В качестве примера, скажем, у нас есть 3 CSV файлы с миллионами строк в файле:Python обработки нескольких файлов
file_1.csv contains 10 million lines
file_2.csv contains 2.5 million lines
file_3.csv contains 7.1 million lines
Я понимаю, что я мог бы использовать в Python multiprocessing library и обрабатывать каждый файл в отдельном процессе, используя один поток на процесс.
Еще одна идея - обрабатывать каждый файл в отдельном процессе, как описано выше, но внутри каждого процесса есть несколько потоков, работающих над кусками файла. Например:
Process 1
file_1.csv being processed
thread 1 is processing the first 1 million lines
thread 2 is processing the second 1 million lines
etc…
combine thread results
... и так далее для процесса 2 и 3.
Итак, мой вопрос, что это самый быстрый способ обработки этих файлов?
Это зависит от того, какую обработку вы делаете и какие другие детали. Трудно сказать, какой из них быстрее, без запуска кода и измерения времени. – kraskevich
Точно, что @ user2040251 сказал: * Это зависит *. Нам нужен больше контекста, например: какова ваша текущая граница сейчас, процессор или IO? Проанализируйте выполнение, чтобы определить, какие самые медленные части есть, и только затем сделайте эти цели оптимизации. – smassey