uvloop-一个快速的,替代asyncio内置的事件循环的python库

简介: uvloop是一个快速的,替代asyncio内置的事件循环的python库,uvloop在Cython中实现,并在内部使用libuv。 uvloop用Cython编写,并建立在libuv之上。libuv是nodejs使用的高性能,多平台异步I/O库。由于nodejs的普及和流行,libuv既快速又稳定。uvloop实现所有异步事件循环API。高级Python对象包装了低级libuv结构和函数。继承用于保持代码DRY并确保任何手动内存管理与libuv原语的寿命保持同步。

uvloop是一个快速的,替代asyncio内置的事件循环的python库,uvloop在Cython中实现,并在内部使用libuv。

性能

uvloop使asyncio加快2-4倍。
71257933_202012062350340050698346.jpg

上图显示了具有不同消息大小的回显服务器的性能。该插座基准用途loop.sock_recv()和 loop.sock_sendall()方法; 所述流基准用途ASYNCIO高层次流,由所创建的asyncio.start_server()功能; 和协议基准用途loop.create_server()用一个简单的回波协议。在 有关它的博客文章中了解有关uvloop的更多信息 。

架构

PEP 3156引入的asyncio模块是网络传输,协议和流抽象的集合,带有可插入事件循环。事件循环是异步的核心。它提供以下API:

  • 计划通知,
    通过网络传输数据,

执行DNS查询,
处理操作系统信号,
方便的抽象来创建服务器和连接,
异步处理子流程。

uvloop实现了asyncio.AbstractEventLoop接口,这意味着它提供了asyncio事件循环的直接替换。
71257933_202012062355390878315633.png

uvloop用Cython编写,并建立在libuv之上。

libuv是nodejs使用的高性能,多平台异步I/O库。由于nodejs的普及和流行,libuv既快速又稳定。

uvloop实现所有异步事件循环API。高级Python对象包装了低级libuv结构和函数。继承用于保持代码DRY并确保任何手动内存管理与libuv原语的寿命保持同步。

安装

uvloop需要Python 3.5或更高版本,并且在PyPI上可用。您可以使用pip安装它:pip install uvloop,您还可以在这里直接下载uvloop的源文件压缩包。
71257933_202012062355070097603110.jpg

相关文章
|
3天前
|
JSON API 开发者
Python网络编程新纪元:urllib与requests库,让你的HTTP请求无所不能
【9月更文挑战第9天】随着互联网的发展,网络编程成为现代软件开发的关键部分。Python凭借简洁、易读及强大的特性,在该领域展现出独特魅力。本文介绍了Python标准库中的`urllib`和第三方库`requests`在处理HTTP请求方面的优势。`urllib`虽API底层但功能全面,适用于深入控制HTTP请求;而`requests`则以简洁的API和人性化设计著称,使HTTP请求变得简单高效。两者互补共存,共同推动Python网络编程进入全新纪元,无论初学者还是资深开发者都能从中受益。
22 7
|
10天前
|
机器学习/深度学习 PyTorch 算法框架/工具
python这些库和框架哪个更好
【9月更文挑战第2天】python这些库和框架哪个更好
25 6
|
10天前
|
机器学习/深度学习 数据采集 算法框架/工具
python有哪些常用的库和框架
【9月更文挑战第2天】python有哪些常用的库和框架
16 6
|
13天前
|
数据采集 XML Web App开发
6个强大且流行的Python爬虫库,强烈推荐!
6个强大且流行的Python爬虫库,强烈推荐!
WK
|
10天前
|
数据采集 XML 安全
常用的Python网络爬虫库有哪些?
Python网络爬虫库种类丰富,各具特色。`requests` 和 `urllib` 简化了 HTTP 请求,`urllib3` 提供了线程安全的连接池,`httplib2` 则具备全面的客户端接口。异步库 `aiohttp` 可大幅提升数据抓取效率。
WK
29 1
WK
|
13天前
|
机器学习/深度学习 数据采集 算法框架/工具
Python那些公认好用的库
Python拥有丰富的库,适用于数据科学、机器学习、网络爬虫及Web开发等领域。例如,NumPy和Pandas用于数据处理,Matplotlib和Dash用于数据可视化,Scikit-learn、TensorFlow和PyTorch则助力机器学习。此外,Pillow和OpenCV专长于图像处理,Pydub处理音频,Scrapy和Beautiful Soup则擅长网络爬虫工作
WK
19 4
|
13天前
|
机器学习/深度学习 JSON 数据挖掘
什么是 Python 库?
【8月更文挑战第29天】
37 4
|
12天前
|
机器学习/深度学习 存储 算法
NumPy 与 SciPy:Python 科学计算库的比较
【8月更文挑战第30天】
35 1
|
13天前
|
机器学习/深度学习 数据可视化 数据挖掘
Python中的数据可视化:使用Matplotlib库绘制图表
【8月更文挑战第30天】数据可视化是数据科学和分析的关键组成部分,它帮助我们以直观的方式理解数据。在Python中,Matplotlib是一个广泛使用的绘图库,提供了丰富的功能来创建各种类型的图表。本文将介绍如何使用Matplotlib库进行数据可视化,包括安装、基本概念、绘制不同类型的图表以及自定义图表样式。我们将通过实际代码示例来演示如何应用这些知识,使读者能够轻松地在自己的项目中实现数据可视化。
|
13天前
|
数据采集 程序员 测试技术
比 requests 更强大 Python 库,让你的爬虫效率提高一倍!
比 requests 更强大 Python 库,让你的爬虫效率提高一倍!