是否有选择 block 大小的指南?
我尝试了不同的 block 大小,但没有一个能提供与浏览器或 wget 下载速度相媲美的下载速度
这是我的代码快照
r = requests.get(url, headers = headers,stream=True)
total_length = int(r.headers.get('content-length'))
if not total_length is None: # no content length header
for chunk in r.iter_content(1024):
f.write(chunk)
任何帮助将不胜感激。?
编辑:我尝试了不同速度的网络..而且我能够达到比我的家庭网络更高的速度..但是当我测试 wget 和浏览器时..速度仍然无法比较
谢谢
最佳答案
您将失去在读取和写入之间切换的时间,并且 block 大小的限制是 AFAIK 仅是您可以存储在内存中的限制。因此,只要您不太关心降低内存使用率,请继续指定较大的 block 大小,例如 1 MB(例如 1024 * 1024
)甚至 10 MB。 1024 字节范围内的 block 大小(甚至更小,因为听起来您已经测试过更小的大小)会大大减慢进程。
对于您希望从代码中获得尽可能多的性能的非常繁重的情况,您可以查看 io
模块以进行缓冲等。但我认为增加 block 大小乘以 1000 或 10000 左右的系数可能会让您大部分时间到达那里。
关于python - python请求的理想 block 大小,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23369625/