반응형
C언어에서 출력을 할 때 개행을 하기위해 endl와 "\n"를 사용합니다.
endl의 경우 flush() 함수를 겸하기 때문에 실행마다 출력 버퍼를 지워주는 과정(flush)이 생겨 "\n" 보다 확실이 속도가 느립니다.
<코드>
#include<iostream>
#include<time.h>
using namespace std;
int main()
{
clock_t start, end;
double time1, time2, time3, time4;
start = clock(); //시간 측정 시작
// #time1 "cout << i << endl;"
for (int i = 0; i < 10000; i++)
{
cout << i << endl;
}
end = clock(); //시간 측정 끝
time1 = end - start;
// #time2 "cout << i << "\n";"
start = clock(); //시간 측정 시작
for (int i = 0; i < 10000; i++)
{
cout << i << '\n';
}
end = clock(); //시간 측정 끝
time2 = end - start;
// #time3 "printf("%d\n", i);"
start = clock(); //시간 측정 시작
for (int i = 0; i < 10000; i++)
{
printf("%d\n", i);
}
end = clock(); //시간 측정 끝
time3 = end - start;
printf("\n\n");
cout << "cout << i << endl : " << time1 << "ms" << endl;
cout << "cout << i << '\\n' : " << time2 << "ms" << endl;
cout << "printf(\"%d\\n\", i) : " << time3 << "ms" << endl;
}
성능면에서
cout << endl 보다는 cout <<"\n" 가,
cout << "\n"보다는 prinft("%d\n") 가 더 빠른것을 알 수 있습니다.
실제로 속도를 측정하니 앞으로는 prinf() 를 더 자주 써야겠다는 생각이 들었습니다.
반응형
'🟦C++' 카테고리의 다른 글
[C/C++] STL sort 정렬 함수 (오름차순, 내림차순) 예제코드 (0) | 2020.11.22 |
---|---|
[C/C++] 클래스와 객체 (2) | 2020.08.12 |
[C/C++] 배열 & 포인터 예제 (0) | 2020.05.15 |
[C++] 명품 C++ Programming 2장 연습, 실습 문제풀이 (6) | 2020.05.14 |
[C/C++] 최대공약수(GCD), 최소공배수(LCM) (유클리드 호제법) (0) | 2020.04.12 |