Requests库与PyCurl性能相比如何?
我的理解是,Requests是urllib的python包装器,而PyCurl是原生的libcurl的python包装器,所以PyCurl应该会获得更好的性能,但不确定性能会有多好。
我找不到任何比较基准。
发布于 2015-10-02 11:01:32
,使用由gUnicorn/meinheld + nginx支持的简单的Flask应用程序(对于性能和HTTPS),并查看完成10,000个请求需要多长时间。在AWS中,测试在两个未加载的c4.large实例上运行,并且服务器实例不受CPU限制。
TL;DR摘要:如果您正在进行大量的联网,请使用PyCurl,否则请使用requests。PyCurl完成小请求的速度是请求的2倍到3倍,直到您达到大请求的带宽限制(这里约为520 MBit或65MB/s),并且使用的CPU功率减少了3倍到10倍。这些数字比较了连接池行为相同的情况;默认情况下,PyCurl使用连接池和DNS缓存,而请求不使用,因此简单的实现速度将是10倍。




请注意,由于涉及的数量级,双对数图仅用于下图


当重用connection
Full results are in the link,以及基准测试方法和系统配置。
警告:虽然我花了很大力气来确保以科学的方式收集结果,但它只测试了一种系统类型和一种操作系统,以及有限的性能子集,特别是HTTPS选项。
发布于 2013-03-17 22:59:57
首先,requests构建在urllib3 library之上,根本不使用stdlib urllib或urllib2库。
将requests与pycurl在性能上进行比较几乎没有什么意义。pycurl可能会使用C代码进行工作,但与所有网络编程一样,您的执行速度在很大程度上取决于将您的机器与目标服务器分开的网络。此外,目标服务器的响应速度可能会很慢。
最后,requests有了一个更友好的应用程序接口,您会发现使用这个更友好的应用程序接口会更有效率。
发布于 2020-04-07 04:11:12
似乎有了一个新成员:--为pycurl请求接口。
谢谢你的基准测试-它很好-我喜欢curl,它似乎比http能做更多的事情。
https://stackoverflow.com/questions/15461995
复制相似问题