2017-02-28 27 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服务器通过连接限制其输出,并使用多个连接来获取更多资源。