Eug*_*ene 41 python performance benchmarking pycurl python-requests
请求库如何与PyCurl性能明智地进行比较?
我的理解是Requests是urllib的python包装器,而PyCurl是libcurl的python包装器,它是本机的,所以PyCurl应该会获得更好的性能,但不确定多少.
我找不到任何比较基准.
Bob*_*Gee 89
我给你写了一个完整的基准测试,使用了由gUnicorn/meinheld + nginx支持的简单Flask应用程序(用于性能和HTTPS),以及查看完成10,000个请求所需的时间.测试在AWS上的一对卸载的c4.large实例上运行,服务器实例不受CPU限制.
TL; DR摘要:如果您正在进行大量网络连接,请使用PyCurl,否则请使用请求.PyCurl以与请求一样快的速度完成2x-3x的小请求,直到您通过大请求达到带宽限制(此处约为520 MBit或65 MB/s),并且使用的CPU功率减少3x到10x.这些数字比较了连接池行为相同的情况; 默认情况下,PyCurl使用连接池和DNS缓存,其中请求没有,因此一个简单的实现将是10倍慢.
链接中包含完整结果,以及基准测试方法和系统配置.
警告:虽然我已经努力确保以科学的方式收集结果,但它只测试一种系统类型和一种操作系统,以及性能的有限子集,尤其是HTTPS选项.
Mar*_*ers 17
首先,requests它建立在urllib3库的顶部,根本不使用stdlib urllib或urllib2库.
requests与pycurl性能相比,没有什么意义.pycurl可能会使用C代码进行工作,但与所有网络编程一样,您的执行速度在很大程度上取决于将您的机器与目标服务器分开的网络.此外,目标服务器可能响应缓慢.
最后,requests有一个更友好的API可供使用,你会发现使用这个更友好的API会更有效率.
似乎有一个新的东西出现了:- pycurl 的请求接口。
谢谢你的基准测试——这很好——我喜欢curl,它似乎能够做比http更多的事情。
https://github.com/dcoles/pycurl-requests
| 归档时间: |
|
| 查看次数: |
20942 次 |
| 最近记录: |