2017-02-28 31 views
0

我有一長串我想從ftp站點下載的文件。我使用python執行下載,並使用多處理模塊同時下載4個左右的文件。我希望使用多個處理器的文件下載速度比使用一個線程更快。使用多重處理執行多個下載命令是否有好處?或者一個線程會填充下載帶寬?在多個處理器上下載文件是否有益(增加速度)?

+0

。效果會在速度上類似於分段下載...我認爲 – Nullman

+0

它可能。另外:由於您只是在執行I/O綁定任務,因此您可以在這種情況下簡單地使用多線程。 – Bakuriu

+1

當你嘗試時發生了什麼? – Goyo

回答

0

對於其他感興趣的人,我進行這個簡單的測試:
下載從FTP站點18文件,每個文件約114MB,使用(對於兩個獨立的下載嘗試顯示時間)Python的多處理模塊和ftp.retrbinary

下載時間1處理器:14分鐘7.2分鐘
下載時間2處理器:4.0分鐘3.8分鐘
3處理器下載時間:2.5分鐘4.0分鐘
4處理器下載時間:6.0分鐘2.3分鐘

下載速度受到其他幾個因素的影響,但在這個小樣本中,似乎添加了幾個處理器會減少下載多個文件所需的時間。可能是

1

一個線程可能會使您的帶寬飽和。無論如何,您可能想嘗試一下:它可能是FTP服務器通過連接限制其輸出,並使用多個連接來獲取更多資源。