[c++] std::endl VS '\n'

강신현·2022년 1월 26일
0

Buffer

임시 메모리 공간으로, 다음과 같은 장점이 있다고 한다.

  1. data를 buffer에 담았다가 한번에 전송하므로 전송시간이 적게 걸림
  2. 잘못된 입력 수정 가능
  3. 적은 시스템콜을 통해 자원을 아낌

Buffering

임시적으로 버퍼에 저장해두는걸 의미한다.
언제까지 저장하는지는 아래 두 가지 방식에 따라 차이가 있다.

  1. 버퍼가 다 찰 때까지
  2. 개행 문자까지

Flush

std::endl은 출력버퍼를 비우고, '\n' 은 출력버퍼를 비우지 않는다.
여기서 말한 "버퍼을 비운다" 는 의미로, buffer에 저장되었던 내용을 내보내는 것이다.

결론

버퍼를 비우는 std::endl 이 느리고, 비우지 않는 \n 이 빠르다.

굳이 즉시 출력해 줘야하는 게 아니라면, \n으로 모아뒀다가 출력하는 게 시간을 줄일 수 있다.

References

https://yechoi.tistory.com/48

profile
땅콩의 모험 (server)

0개의 댓글