cargo-nextest: 全新版本的 test runner
cargo nextest 是一个 cargo test 的改进版本
其作者指出,当前的 cargo test 有几点不足:
- 缺少针对每一个 unittest 测试结果的结构化表示
- 测试二进制文件串行执行,一个发生错误,测试会中断
- 可能会被单个测试用例阻塞,导致性能瓶颈
针对这些问题,cargo nextest 采用了更加并行化的策略,提出了一个更加先进的测试框架
针对多个大型项目的 Benchmark 结果如下,可以看出,测试性能有显著提升
Project | Test count | cargo test(s) | nextest(s) | Difference |
---|---|---|---|---|
cargo-guppy | 252 | 34.70 | 22.14 | -36.2% |
diem1 | 1476 | 1058.46 | 400.53 | -62.1% |
penumbra | 32 | 54.66 | 24.90 | -54.4% |
ring | 179 | 17.64 | 11.60 | -34.2% |
rust-analyzer | 3746 | 6.76 | 5.23 | -22.6% |
tokio | 1014 | 27.16 | 11.72 | -56.8% |
官方文档:https://nexte.st/index.html
rust actor 发展情况
Rust 广泛采用 CSP 模型进行并发编程,不过仍有一些爱好者想要尝试 Actor 模型,这不,有人在 twitter 上发起了一个讨论:What's the current state of actor systems in rust? 下面是针对该讨论的一些总结:
- actix riker axiom 几个框架虽然发展得不错,不过都没有发布 1.0 版本,也就是说没有稳定的 API,同时项目更新频率也不是很理想
- 你并不太需要一个大型 Actor 框架,因为通过 tokio,你甚至可以自己造一套轮子
- 很多 Actor 框架可能只是一些针对 channel 的语法糖,并没有带来编程复杂度上的改善
-- From 日报小组 RustPlumber