大型回复中的Python请求速度变慢

时间:2018-05-03 21:57:10

标签: performance http network-programming python-requests

我正在使用python-requests来测试对服务进行api调用的响应时间。回来的响应大约是1-1.5MB,但我所看到的是大部分时间用于解析以10KB为块的响应(在请求模块的内容方法中)。 如果我使用像grequest这样的异步框架发出并发请求,则响应时间会明显变慢。

4个并发请求

Elapsed: 0.807070970535 <- response time of reading first byte
Elapsed: 0.816656827927 <- response time of reading first byte
Elapsed: 0.797511100769 <- response time of reading first byte
Elapsed: 0.871026039124 <- response time of reading first byte
method took content 5.80513095856 <- response time reading entire response
method took content 5.89753890038 <- response time reading entire response
method took content 7.95831394196 <- response time reading entire response
method took content 8.77741289139 <- response time reading entire response

只有一个请求,读取整个响应的响应时间大约为2秒。为什么消耗多个1.5MB响应需要5-8秒?是因为线程是在4种不同的响应中读取之间的上下文切换吗? 是因为网络延迟(可能不是唯一的问题,因为我要求的服务器可以承受更高的流量)?或者是因为资源缺乏与cpu? 是否还有其他备用的httplib框架可以显着提高速度?

谢谢!

0 个答案:

没有答案