这篇10月11日的旧文因本周热点再次进入候选。背景是 Campfire 聊天应用被 AI 改写成不同语言后,人们用吞吐或消息送达率判断哪种实现更好。Sarnacki 指出,各版连兼容性和队列策略都不一致,因此性能差异不能直接归到语言。
他进一步把压测从“收到响应再发下一条”的闭环方式,改为固定到达率:外部请求不会因服务变慢而自动放缓。在每秒100次写入请求(POST) 的个人测试中,Rust 版事件送达较少,但没有 HTTP 错误;修正后的 Elixir 版送达较多,同时出现超时和很长尾延迟。作者再改 Rust 广播队列容量,从256增至16384,事件送达率由约14%升至约90%,最坏延迟却由11秒升至130秒以上。
因此他没有宣布 Rust 反超。对聊天客户端,尽快断开落后的连接、重连后拉取最新状态,有时比把事件留在队列等数分钟更合适。背压就是系统在处理不过来时怎样限制、排队或拒绝新增工作;每种选择都要结合用户实际能否看到消息判断。