Piotr Sarnacki · It’s all about the bit · 阅读原文

原始来源:Piotr Sarnacki · It’s all about the bit

发现渠道:Hacker News · 原始讨论

这篇10月11日的旧文因本周热点再次进入候选。背景是 Campfire 聊天应用被 AI 改写成不同语言后,人们用吞吐或消息送达率判断哪种实现更好。Sarnacki 指出,各版连兼容性和队列策略都不一致,因此性能差异不能直接归到语言。

他进一步把压测从“收到响应再发下一条”的闭环方式,改为固定到达率:外部请求不会因服务变慢而自动放缓。在每秒100次写入请求(POST) 的个人测试中,Rust 版事件送达较少,但没有 HTTP 错误;修正后的 Elixir 版送达较多,同时出现超时和很长尾延迟。作者再改 Rust 广播队列容量,从256增至16384,事件送达率由约14%升至约90%,最坏延迟却由11秒升至130秒以上。

因此他没有宣布 Rust 反超。对聊天客户端,尽快断开落后的连接、重连后拉取最新状态,有时比把事件留在队列等数分钟更合适。背压就是系统在处理不过来时怎样限制、排队或拒绝新增工作;每种选择都要结合用户实际能否看到消息判断。

可信度 65 · 重要性 72 · 新颖度 54

技术与主题

AI 编程 · 评测与基准 · Backpressure · Open-loop Load Testing · Tail Latency

Piotr Sarnacki

观点原文

10月11日个人复测与工程意见,版本及负载限定见正文。

忠实转述(非原句):他不认同按一次送达率判断语言的优劣。加大队列后Rust的送达率更高,他仍认为该版本可能更糟,因为它让滞后的事件等得太久。他更倾向及时暴露失败,并让浏览器重连拉取更新;同时提醒,无边界的队列最终也会遇到内存限制。

nicfio

观点原文

回应同一旧文的HN讨论,提出多模型对抗开发;未给出受控比较。

忠实转述(非原句):他认为问题也在使用方式:不同模型可能以不同方式推理和犯错,因此建议用至少两个前沿模型相互检验,人再检查输出。他承认不能完全消除错误,并把额外模型费用看作质量投入。这是方案主张,不是已经测出误差独立或最低错误率。

wpld

观点原文

同一文章的Lobsters讨论,2026-10-12的个人成功案例;不同项目,不是Campfire复现。

忠实转述(非原句):他报告自己用claude-code把一个小型Spring Boot应用的前端从Angular改到Vue,API不变,不让工具接触真实数据,并逐步检查输出;Selenium在Firefox的集成测试之外,Chromium仍有日期输入小问题。他认为原先对预期行为和测试的掌握有助于这次改写。

编辑评读

这份复测的好处,是一个容量改动就让同一实现呈现出两种“胜利故事”。送达率上涨可能有价值,但若读者正在等通知,延迟代价不能藏在成功分子背后。闭环与固定到达率各有用途:前者适合固定客户端并发的行为,后者能暴露外部工作持续到来时的积压。选错负载会使系统自动替测试减压,从而漏掉本来关心的故障。

不过这仍是作者在特定改写版本上的个人试验。我们没有重跑其负载,也不把具体比例变成语言优劣结论。最值得借用的是反例构造方式:保持实现基本不变,改变一项资源限制,检查“更成功”是否只是把失败推迟到别处。它与自动审查的关系也很具体:积压的通知和没完的修复都可能把即时进度变成后续等待;共同点是要测终点体验,机制本身不同。

Lobsters 的 wpld 提供了应保留的成功反例:应用较小、API不变、原作者知道原有行为,又逐步检查和运行集成测试。它不能推翻聊天系统里的积压问题,却说明“使用Agent改写”不是足以解释失败的单一变量。另一位 nicfio 建议不同模型互查,但模型不同只提出了潜在的错误差异,还需实测是否互补;不能把增加一个角色直接换算为降低了多少风险。

需要留意

  • 旧文热点回看;个人测试与具体改写版本,未作本地复现或受控语言比较。

核查依据

所属事件

收录记录