시스템콜 write의 속도에 대해서 설명해주세요

gouhc46의 이미지

fd가 있다고 가정하고

int num = 0;
while(num < 1024){
num += write(fd, "A", 1);
}

인 경우와

char buf[1024];
write(fd, buf, strlen(buf));

의 두가지 경우가 있습니다

제가 직접 확인해본 결과 체감할 수 있는 속도 차이는 없었는데,

실제로 시스템콜이 더 많이 일어나는 위의 경우가 더 느린게 맞나요?

아래경우보다 위의 경우가 훨씬 성능이 떨어지나요?

시스템콜도 내부적으로 버퍼가 있다고 들은거 같은데

아무리 시스템콜이 많이 일어나도 그 버퍼가 다 차야 시스템콜이 일어나는건가요?

설명해주세요...

sangwoo의 이미지

1024보다 훨씬 큰 숫자로 실험하셔도 차이가 별로 안나나요?

----
Let's shut up and code.