Rust 异步框架的性能评估
Zenoh 是一个基于 async_std 的异步零开销发布/订阅、存储/查询和计算框架,Zenoh 是用 Rust 编写的,它利用异步特性来实现高性能和可扩展性。
Zenoh 官方评估了三个异步框架(async_std/Tokio/smol)在异步网络上的性能。对每一种方法进行评估,并与 Rust 标准库提供的等效同步原语提供的基线性能进行比较。
评估显示,async_std 和 smol 非常接近标准库,并且在某些工作负载上优于标准库。另一方面,Tokio 似乎很快就达到了它的极限,即 100 msg/s 时达到 18µs,并且 TCP 和 UDP 之间没有差异。此外,Tokio 似乎受到 CPU 限制(Rust)异步任务的不利影响。
基于这些结果,Zenoh 认为他们别无选择,只能继续使用 async_std。也就是说,了解 Tokio 为什么会在比较中暴露这种行为,并改善其原始性能以缩小与 async_std 的差距,这将是一件有趣的事。目前,Tokio 在本地主机上增加了 8µs 延迟,在网络上增加了 10µs 延迟。
评论