Rust 性能测试:吞吐之外还要看分配和尾延迟
Rust 性能测试吞吐之外还要看分配和尾延迟Rust 代码没有 GC不代表性能问题会自动消失。锁竞争、频繁分配和异步队列积压一样会制造长尾。建立稳定的基准入口criterion 或自建 harness 都可以但要固定输入、编译 profile、CPU 频率策略和线程数。微基准用于看函数变化端到端测试用于看调度与 I/O。用 profiler 解释数字耗时变化后再看 flamegraph、分配统计和锁等待。只凭源码猜热点很容易优化一个几乎不占时间的分支。报告分位数和样本波动。对比前后保持 feature 与 allocator 一致。黑盒处理输入避免编译器消除工作。性能回归要有容忍区间测试机器存在噪声阈值应基于历史分布而不是一次最好结果。显著回归再进入细查避免 CI 因微小波动失去可信度。性能数据不是排行榜。能指向具体分配、锁或执行阶段才真正帮助 Rust 项目做取舍。