告别行缓冲:让终端输出更快

We can do better than line-buffered output

传统的行缓冲机制(line-buffered output)在终端应用中常成为性能瓶颈,导致像 Info-ZIP 的 unzip 工具在处理大量小文件时速度骤降。作者提出了一种更优方案:结合完全缓冲的高效率与终端输出的即时性。通过引入基于时间的刷新策略(deadline flush),而非机械地在每个换行符处刷新,我们可以在保持人类感知无差异的前提下,显著减少系统调用次数。这种思路借鉴了 Nagle's algorithm 的精髓,无需多线程即可实现流畅体验,让程序既快又稳,彻底摆脱对 C stdio 的依赖。

我们完全可以兼得:以完全缓冲的速度,即时将行数据送达终端。

同日更多故事

2026-11-05