雨谷の日和

過去12年で1,600を超えるアニメの第1話だけは見続けた僕のお勧めアニメがハズレなはずがない

Cでの出力(バッファリング無)

ということで、バッファリング無の場合のCのものを実行してみよう。

#include 
int main(void) {
  int i;
  FILE *out;
  const char buf[] = "Hello world!\n";
  out = fopen("c_log.txt", "w");
  setbuf(out, NULL);
  for(i = 0; i < 10000000; ++i)fputs(buf, out);
  fclose(out);
  return (0);
}

結果は、以下のようになった。

20:25:11
20:25:27
20:25:43
20:25:59
20:26:14
20:26:31

最適化の有無にかかわらず、約16秒という感じである。
バッファリングした場合には約5秒であるから、約3倍遅い。
つまりCの場合でも、バッファリングは効果的である。