알고리즘에서 Debug 모드와 Release 모드의 차이
보통 Visual Studio에서 C++으로 코드를 작성할 때 Debug 모드로 하는 경우가 많다.
그래서 이것을 신경쓰지 않고 있다가 완전탐색(Brute-force search) 문제를 푸는데
이상함을 느꼈다.
위의 문제에서 n이 최대 10000까지인데, 내가 작성한 코드에 10000을 넣고 돌리면
5초가 넘게 걸렸기 때문이다. (문제에서 시간 제한은 2초)
그래서 찾아보니, Debug 모드에서의 실행속도가 Release 모드보다 훨씬 느릴 수 있다는 것이다.
나의 부족함을 깨닫고 바로 Release 모드로 바꿔서 돌리니 순식간에 나와버렸다.
나의 부족함을 깨닫고 바로 Release 모드로 바꿔서 돌리니 순식간에 나와버렸다.
아래는 각 모드의 특징을 간단하게 적어보았다.
Debug mode :
실행파일에 디버깅 정보를 포함하여 언제든지 디버깅이 가능하다.
디버그에 필요한 정보들을 실행시 계속 체크함으로써 속도가 느리다.
Release mode :
디버깅 정보가 없고, 코드를 최적화하여 실행 파일 크기를 최대한 줄여준다.
초기화 하지 않으며, 같은 문자열 상수라도 서로 다른 공간에 할당된다.
따라서 속도나 크기면에서 상당한 차이를 보일 수 있다.
댓글
댓글 쓰기