首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Python请求与PyCurl性能的对比

Python请求与PyCurl性能的对比
EN

Stack Overflow用户
提问于 2013-03-17 22:41:26
回答 4查看 31.3K关注 0票数 55

Requests库与PyCurl性能相比如何?

我的理解是,Requests是urllib的python包装器,而PyCurl是原生的libcurl的python包装器,所以PyCurl应该会获得更好的性能,但不确定性能会有多好。

我找不到任何比较基准。

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 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

  • requests时,
  • pycurl发出请求需要大约73微秒526 CPU-微秒发出请求当重用connection
  • pycurl需要大约165 CPU-微秒打开新连接并发出请求(无连接重用),或向open
  • requests发出请求约92微秒需要大约1078 CPU-微秒打开新连接并发出请求(无连接重用),或~552微秒打开

Full results are in the link,以及基准测试方法和系统配置。

警告:虽然我花了很大力气来确保以科学的方式收集结果,但它只测试了一种系统类型和一种操作系统,以及有限的性能子集,特别是HTTPS选项。

票数 123
EN

Stack Overflow用户

发布于 2013-03-17 22:59:57

首先,requests构建在urllib3 library之上,根本不使用stdlib urlliburllib2库。

requestspycurl在性能上进行比较几乎没有什么意义。pycurl可能会使用C代码进行工作,但与所有网络编程一样,您的执行速度在很大程度上取决于将您的机器与目标服务器分开的网络。此外,目标服务器的响应速度可能会很慢。

最后,requests有了一个更友好的应用程序接口,您会发现使用这个更友好的应用程序接口会更有效率。

票数 20
EN

Stack Overflow用户

发布于 2020-04-07 04:11:12

似乎有了一个新成员:--为pycurl请求接口。

谢谢你的基准测试-它很好-我喜欢curl,它似乎比http能做更多的事情。

https://github.com/dcoles/pycurl-requests

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/15461995

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档