我用python编写了两个客户端,第一个客户端使用urllib模块,第二个客户端使用request模块。
它们都生成二进制数据,然后将其发送到基于flask的服务器,并且还将 flask 服务器中的二进制数据返回给客户端。
我发现两个模块(urllib,请求)从客户端向服务器发送数据所花的时间是相同的,但是在urllib中,从服务器向客户端返回数据到客户端所花的时间要比请求快两倍以上。 。
我在请求模块上做错了什么,这使其速度变慢了?
首先,要重现该问题,我必须在您的onStringSend
函数中添加以下行:
否则,我会收到“对等方重置连接”错误,因为服务器的接收缓冲区不断装满。
进行此更改后,Requests版本的性能与urllib版本的性能大致相同。
另请参阅“请求”文档中的“”部分,以获取有用的建议。
现在,有趣的问题仍然存在:为什么Response.content
会如此小块地迭代?在Requests的核心开发人员之后,似乎没有特别的原因。我在Requests中提交了以便对此进行进一步的研究。