2016년 4월 9일 토요일

Debug Mode vs Release Mode (디버그 모드 vs 릴리즈 모드)

Debug Mode와 Release Mode는 실행파일에서 차이가 있습니다.

Debug Mode는 컴파일시에 Debug정보를 실행파일에 같이 삽입합니다.
Release Mode에서는 Debug 관련 정보를 삽입하지 않습니다.

따라서 Release Mode로 만든 파일이 속도도 빠르며 실행파일 크기도 작습니다.

또한 Debug Mode의 실행파일은 컴파일러가 최적화를 해주지 않지만, Realase Mode의 실행 파일은 최적화를 해줍니다.




다음과 같이 소스 파일이 있을 때, 반복문을 1000번 돌 때마다 a에 10을 대입해줍니다.
우리가 눈으로만 봐도 알 수 있듯이, a에 10만 대입하고 끝내면 될 걸, 의미 없는 반복문이 돌고 있습니다. 컴파일러 또한 이것을 인지합니다.

  • Debug Mode DisAssembly Screen

  • Release Mode DisAssembly Screen


변수 a와 i, 반복문 과정을 모두 생략했으며 printf함수에 10(0Ah)을 출력한 명령어만 들어간 것을 확인할 수 있습니다.


  • Debug Mode File Size


  •  Release Mode File Size

실행 파일 크기가 Debug 모드에 비해 작은 것을 확인할 수 있습니다.



 ※ 우리는 실제 프로그램을 만들 때, 개발과정에서는 Debug Mode로 컴파일 하지만, 실제 제품으로 출시하기 위해서는 최종적으로 Release Mode로 컴파일이 되야 합니다. 또한 두 Mode 결과가 일치해야 합니다.

댓글 없음:

댓글 쓰기