1181번 - 단어 정렬
일단 문제는 풀어서 맞췄는데요.
맞힌분들 보니까 코드는 유사한데 시간차이가 어마어마하게 나길래 코드를 비교해봤는데요.
제 원래 코드의 시간은 600ms가 나왔습니다.
그 후에 std::ios::sync_with_stdio(false); 이 코드를 넣어서 550ms로 50ms를 줄였습니다
이건 동기화를 꺼준다는 코드라고 들은적있는데요.
문제는 cout << str[i] << '\n'; 이겁니다.
제 원래 코드는 cout << str[i] << endl; 였는데
저 코드로 수정하니 16ms로 대폭 감소했습니다 ㄷㄷ
endl 함수가 시간을 이렇게 많이 잡아먹나요?
cout<<endl 은 줄바꿈 외에도 fflush(stdout)을 해주는 효과가 납니다.
(출력)버퍼를 자주 비우게 되면 그만큼 IO부하가 상대적으로 전체 퍼포먼스에 큰 비중을 차지하게 되고요
댓글을 작성하려면 로그인해야 합니다.
lyzqm 7년 전
일단 문제는 풀어서 맞췄는데요.
맞힌분들 보니까 코드는 유사한데 시간차이가 어마어마하게 나길래 코드를 비교해봤는데요.
제 원래 코드의 시간은 600ms가 나왔습니다.
그 후에 std::ios::sync_with_stdio(false); 이 코드를 넣어서 550ms로 50ms를 줄였습니다
이건 동기화를 꺼준다는 코드라고 들은적있는데요.
문제는 cout << str[i] << '\n'; 이겁니다.
제 원래 코드는 cout << str[i] << endl; 였는데
저 코드로 수정하니 16ms로 대폭 감소했습니다 ㄷㄷ
endl 함수가 시간을 이렇게 많이 잡아먹나요?