舉個例子,假設我們有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