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

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

性能

uvloop使asyncio加快2-4倍。

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

架构

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

  • 计划通知,

  • 通过网络传输数据,

  • 执行DNS查询,

  • 处理操作系统信号,

  • 方便的抽象来创建服务器和连接,

  • 异步处理子流程。

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

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的源文件压缩包

(0)

相关推荐