std::endl과 '\n' 개행문자 수행속도 비교

endl은 개행에 추가로 flush를 수행하기 때문에 속도를 더 먹는다고 하는데, 과연 얼마나 차이가 날지 확인해보도록 하겠다

아래는 코드

| 12345678910111213141516171819202122232425262728293031323334 | #include "stdafx.h" // iostream, cstdio, chrono, Windows.h int main(){    using std::cout;    using std::endl;    using std::ios_base;    using std::chrono::system_clock;    using std::chrono::duration_cast;    using std::chrono::nanoseconds;     system_clock::time_point start;    system_clock::time_point end;     start = system_clock::now();    for (int n = 0; n < 5000; n++)        std::cout << endl;    end = system_clock::now();    auto endl_time = duration_cast(end - start).count();     start = system_clock::now();    for (int n = 0; n < 5000; n++)        std::cout << '\n';    end = system_clock::now();    auto newline_time = duration_cast(end - start).count();     system("cls");     std::cout << "endl : " << endl_time << "nanoseconds" << endl        << "\n : " << newline_time << "nanoseconds" << endl;     return 0;} Colored by Color Scripter | cs |




endl은 125억 나노초.
개행문자는 87억 나노초.

생각보다 차이가 그리 격심하진 않다.