1

我一直在尝试找出 uvloop 和 python 自带的内置异步实现的区别。除了 uvloop 的基础 libuv 是用 c++ 编写的这一事实之外,网络上没有提到其他因素。我想知道影响 asyncio [它们之间的性能的其他因素。

另外,这个博客由性能差异流和普通异步 io 组成,流不是从异步生成的,因此相互依赖吗?

4

1 回答 1

1

正如您所说,uvloop 是在 libuv 之上用 Cython(相当于 c)编写的。

在 Cython 中编写代码几乎可以保证给您带来明显的速度提升,这正是这里正在发生的事情。不需要任何其他区别。这很像 numpy 执行操作比在 Python 中正常编写要快。


对于您的另一个问题: asyncio 和 asyncio-streams 之间的区别在于流是建立在基本 asyncio 之上的。

Asyncio 使用传输和协议,第一个负责写入套接字,第二个负责处理套接字接收到的数据。

流是建立在两者之上的简单结构,并且具有更易于使用的界面,可以模仿常规文件或套接字。

于 2021-12-20T13:26:40.753 回答