requests 为什么慢 urllib3 如此之多?

2023-11-26 23:19:16 +08:00
 annoygaga

目前使用 requests 库去进行一些 api 的访问,惊讶的发现 requests 库速度相较于 urllib3 慢非常多

$ url = "https://httpbin.org"

$ %timeit r = requests.get(url)

119 ms ± 42.5 ms per loop (mean ± std. dev. of 7 runs, 10 loops each)

$ %timeit r = httpx.get(url)

%117 ms ± 17.6 ms per loop (mean ± std. dev. of 7 runs, 10 loops each)

$ http = urllib3.PoolManager()
$ %timeit response = http.request("GET", url)
The slowest run took 6.87 times longer than the fastest. This could mean that an intermediate result is being cached.
10.6 ms ± 6.91 ms per loop (mean ± std. dev. of 7 runs, 100 loops each)

其中还尝试了 session 等方法,貌似也没有变快,上面的是多次的测试,我还做了一次请求的测试,看上去也是很慢

看了看源码和原理,想象不出来这个速度差来自哪里?

需求就是请求网址需要快,但不一定需要多次请求

2955 次点击
所在节点    Python
24 条回复
annoygaga
2023-11-27 16:41:41 +08:00
@mengzhuo 也是 urllib3 快,你可以试试
annoygaga
2023-11-27 16:42:02 +08:00
@linhua 我测算了单次的速度,也是 urllib3 块
louisxxx
2023-11-28 05:54:17 +08:00
本身如此啊,你得为方便牺牲性能
bbxiong
2023-12-04 11:34:27 +08:00
关注

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/995381

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX