这是一篇关于 Rust 中五个流行的 actor 库(Actix、Coerce、Kameo、Ractor、Xtra)的基准测试研究报告,主要内容如下:
- 引言:Rust 的 actor 生态系统蓬勃发展,本报告比较了五个库的性能和功能,旨在评估在实际工作负载下的吞吐量和延迟,为开发者选择合适的 actor 库提供参考。
基准测试概述:
- 比较的库:介绍了五个库的最新稳定版本及其特点,包括运行时依赖等。
- 硬件与软件设置:使用 MacBook Pro 和 Rust 1.84.0 进行测试,采用 Criterion.rs 作为基准测试工具。
- 目标与指标:包括消息传递效率、 actor 创建速度、运行时使用、容错和分布式通信等方面的评估。
- 公平性与透明度:所有库都使用默认配置进行基准测试,代码开源。
- 功能比较:对每个库的功能进行了概述,包括邮箱配置、监督和分布式 actor 等方面的比较。
基准测试场景:
- 消息传递效率:创建 100 个 actor,进行轮询发送“tell 请求”,测量每个消息的处理时间。
- actor 创建速度:测量创建一批 actor 的时间。
- 容错和分布式通信:审查了各库的相关能力和性能,但未进行图表展示。
基准测试结果:
- 消息传递时间:Actix 提供最快的消息传递速度,Coerce、Kameo、Ractor 性能相似,Xtra 的性能取决于所选的运行时。
- actor 创建时间:Actix 最快,Coerce 最高,Kameo 与其他 Tokio 库性能相当,Ractor 接近 Kameo,Xtra 启动较快。
- 创建 actor 的代码比较:比较了每个库定义和创建 actor 的最小代码量,包括是否支持派生宏等。
- 向 actor 发送消息的代码比较:比较了每个库向 actor 发送消息的最小代码量,包括是否支持派生宏等。
- 观察和权衡:讨论了有界和无界邮箱、容错和分布式通信、运行时考虑以及实际应用场景等方面的观察和权衡。
- 总体得分:根据功能表和定义、创建/发送消息的代码量,给出了各库的总体得分。
- 结论:选择合适的 actor 库取决于邮箱类型、性能要求、运行时集成和分布式需求等因素,并对每个库的特点进行了总结。
- 访问完整的基准测试套件:所有基准测试代码和结果都开源,欢迎克隆、运行和提交 pull 请求,鼓励社区贡献。
- 最终思考:这些基准测试是 2025 年初 Rust actor 生态系统的快照,库在不断发展,性能可能会提高,每个库都有其优点,最佳选择取决于项目的需求。
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。