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)