C言語のwriteについて
C言語のwriteシステムコールで出力文字以上のバッファサイズ確保を行った場合、大きくすればするほど実行速度が早くなるのですがなぜですか?メモリの数の単位が違ったりするのでしょうか。はじめは毎回余分に確保するためむしろ遅くなるのかなと思っていました。一度確保した領域で余った領域に重複して確保するため実際に確保する領域が減ったからと推測するのですがあってますか?
該当のソースコード
C言語
1#include <stdio.h> 2#include <unistd.h> 3#include <stdlib.h> 4 5char buf[] = "aaaaaaaaaa"; 6int main(int argc, char **argv){ 7 int size, n, i; 8 if (argc < 3) 9 return 1; 10 size =(int) atof(argv[1]); 11 n = atoi(argv[2]); 12 for (i = 0; i < size; i += n) 13 write(1,buf,n); 14 return 0; 15}
試したこと
time ./a.out 1e8 10
time ./a.out 1e8 100
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/08/02 10:37
2020/08/03 10:04
2020/08/03 15:44