Python requests与aiohttp异步性能实测对比

许南星
许南星
发布时间:2026-10-14| 3人浏览过
原创

本文通过CentOS 7环境下Python 3.6的实测数据,对比了同步库requests与异步库aiohttp访问百度的耗时。结果显示aiohttp耗时约10.7秒,requests约12.4秒,验证了异步框架的速度提升。文章附带完整测试代码,并特别提示使用requests时避免复用session导致缓存干扰测试结果。

测试环境与配置

测试环境配置为CentOS 7系统,Python版本为3.6。

本次测试的目标网址设定为www.bai.com(注:原文如此,通常指代百度)。

测试方法采用循环抓取目标站点100次的方式。

测试结果对比

测试得出的具体耗时数据如下:

aio: 10.702147483825684s requests: 12.404678583145142s

从数据可以看出,异步框架在速度上确实有显著提升。

以下是本次测试所使用的完整代码示例:

测试代码实现


import aiohttp
import time
import requests
import asyncio
 
 
def test_requests():
  """ 测试requessts请求百度100次时间 """
 
  start = time.time()
  url = "https://www.baidu.com"
  for i in range(100):
    requests.get(url)
  end = time.time()
  print("requests:")
  print( end - start )
     
 
async def aio_download(url):
  """ aiohttp 下载 """
 
  async with aiohttp.ClientSession() as session:
    await session.get(url)
 
 
async def test_aio():
  """ 测试aiohtpp请求百度100次时间 """
  url = "https://www.baidu.com"
  start = time.time()
  for i in range(100):
    await aio_download(url)
  end = time.time()
  print("aio: ")
  print( end - start )
 
 
if __name__ == "__main__":
 
  loop = asyncio.get_event_loop()
  loop.run_until_complete(test_aio())
 
  test_requests()

————————————————————————————————————————

-—————————————————————————————————————————

测试注意事项

在测试过程中有一个关键的小贴士需要注意:

使用requests库进行反复抓取同一网站的测试时,不应复用session对象。因为从第二次请求开始,读取的将是缓存数据,这会导致无论抓取50次还是100次,总耗时都会异常地缩短至1秒以内,从而失去对比意义。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持本站。

免责声明:本文内容仅供参考,不代表本站观点。转载或引用请注明出处。

Python 相关产品和应用

全部下载
Selenium

Selenium

4.51.0 · Windows

用于浏览器自动化和 Web 测试的 Python 工具。

scikit-learn

scikit-learn

1.9.1 · Windows

常用 Python 机器学习算法与模型评估工具库。

Black

Black

26.10.1 · Windows

强调一致性的 Python 自动代码格式化工具。

Ruff

Ruff

0.17.1 · macOS

由 Rust 编写的高速 Python 代码检查和格式化工具。

pytest

pytest

9.1.1 · Windows

简洁而强大的 Python 自动化测试框架。

FastAPI

FastAPI

0.146.0 · Windows

高性能 Python API 框架,支持类型提示和自动接口文档。

Flask

Flask

3.1.3 · Windows

轻量灵活的 Python Web 应用框架。

Django

Django

6.1.2 · Windows

成熟的 Python Web 框架,适合构建内容站点和业务系统。

Spyder

Spyder

6.1.7 · Windows

面向科学计算与数据分析的 Python 集成开发环境。

SciPy

SciPy

1.18.1 · Windows

面向科学、工程和技术计算的 Python 算法库。