我有一个要从FTP站点下载的文件列表。我使用Python执行下载,并使用多处理模块同时下载4个左右的文件。我希望使用多个处理器的希望是,这些文件的下载速度比仅使用一个线程更快。使用多处理执行多个下载命令是否有好处?还是一个线程填充下载带宽?
一个线程可能能够饱和您的带宽。您可能还是想尝试一下:它可能是ftp服务器的每个连接的输出,并且有多个连接,您可以使用更多的资源。
对于其他有兴趣的人,我进行了此简单测试:
使用Python的多处理模块和FTP.Retrbinary从FTP网站下载18个文件,每个文件约为114MB(两次单独下载尝试显示的时间)
使用1处理器下载时间:14分钟,7.2分钟
使用2个处理器下载时间:4.0分钟,3.8分钟
使用3个处理器下载时间:2.5分钟,4.0分钟
使用4个处理器下载时间:6.0分钟,2.3分钟
下载速度受到其他几个因素的影响,但是在这个小样本中,添加一些处理器减少了下载多个文件所需的时间。