python - python请求的理想 block 大小

标签 python performance python-requests

是否有选择 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/

相关文章:

python - 哪个数据库用于科学数据(可变大小的图像+元数据搜索)

ruby-on-rails - Rails 4, order in has_many :through. 它什么都不做

python - Python 请求中的 SSLError(读取操作超时)

javascript - Node 和 Redis : Redis Clients

python - PyOpenGL 非常慢

python - 在 Python 请求中停止文件下载

python - 在 Python 中处理多个 http 请求

python - 在子字符串上熔化和合并 - Python 和 Pandas

python, tkinter - 框架高度和宽度参数值无效

python - 这是遗传算法吗?