举个例子,假设我们有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 2014-10-02 17:04:06
@ user2040251说的是:*取决于*。我们需要更多的上下文,例如:你现在的边界是cpu还是IO?对执行进行剖析以确定最慢的部分是什么,然后才将这些作为优化目标。 – smassey 2014-10-02 19:45:42