Rust异步框架的性能评估


在这篇文章中,我们将评估三个异步框架在异步网络上的表现。它们中的每一个都将与 Rust 标准库提供的等效同步原语提供的基线性能进行评估和比较。也就是说,我们的目标是以下框架:


。。

我们的评估表明async_std和smol非常接近标准库,并且在某些工作负载上的表现优于它。
另一方面,Tokio似乎很快就达到了它的极限~18µs 和 100 msg/s,它显示 TCP 和 UDP 之间没有区别。
此外,Tokio 似乎受到 CPU-bound (Rust) 异步任务的不利影响。
基于这些结果,我们认为我们别无选择,只能继续使用async-std。
也就是说,理解为什么Tokio会在争用下暴露这种行为以及改进其原始性能以缩小与async_std的差距将会很有趣。
就目前而言,Tokio在 localhost 中引入了 8µs 的额外延迟,在网络上引入了 10µs。

理想情况下,我们希望看到一个异步框架成为“标准”,但要做到这一点,我们不能忽视原始性能。
我们期待与社区的其他成员一起参与和合作,以帮助实现这一目标。

详细点击标题