lyzqm   4년 전

일단 문제는 풀어서 맞췄는데요. 

맞힌분들 보니까 코드는 유사한데 시간차이가 어마어마하게 나길래 코드를 비교해봤는데요.

제 원래 코드의 시간은 600ms가 나왔습니다.

그 후에 std::ios::sync_with_stdio(false);  이 코드를 넣어서 550ms로 50ms를 줄였습니다 

이건 동기화를 꺼준다는 코드라고 들은적있는데요.

문제는 cout << str[i] << '\n'; 이겁니다.

제 원래 코드는 cout << str[i] << endl; 였는데 

저 코드로 수정하니  16ms로 대폭 감소했습니다 ㄷㄷ

 endl 함수가 시간을 이렇게 많이 잡아먹나요? 

Nyan101   4년 전

cout<<endl 은 줄바꿈 외에도 fflush(stdout)을 해주는 효과가 납니다.

Nyan101   4년 전

(출력)버퍼를 자주 비우게 되면 그만큼 IO부하가 상대적으로 전체 퍼포먼스에 큰 비중을 차지하게 되고요

댓글을 작성하려면 로그인해야 합니다.