改行ごとのflushはもう不要、ターミナル出力はもっと速くできる

We can do better than line-buffered output

ターミナルへの出力は行バッファリングされ、改行のたびにflushされるため、小さなファイルを大量に展開するunzipなどでは大きなボトルネックになる。著者は改行ではなく「一定時間アイドルだったらflushする」方式を提案し、100ms程度の期限をバッファに持たせて作業の合間に確認するだけで、体感を変えずに完全バッファリング並みの速度が得られると示す。

改行そのものにこだわる必要は実はない。必要なのは、バッファがしばらく放置されたらflushすることだ。

この日のほかの記事

2026-11-05