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延迟。