컴파일러

컴파일러의 최적화 수준을 지정하는 옵션에서 최적화를 하지 않는 설정(-O0 등)이 자주 사용되는 상황은?

  1. A제품으로 배포할, 가능한 한 빠른 프로그램을 만들 때
  2. B디버거로 한 줄씩 동작을 확인하면서 오류를 찾을 때
  3. C프로그램의 크기를 가장 작게 하고 싶을 때
정답과 해설 보기

정답: B. 디버거로 한 줄씩 동작을 확인하면서 오류를 찾을 때

최적화를 하지 않는 설정에서는 소스 코드의 각 줄이 거의 그대로의 순서로 기계어에 대응하고 변수도 항상 메모리나 레지스터에 남으므로, 디버거로 한 줄씩 실행하거나 변수의 값을 확인하기 쉬워집니다. 최적화를 적용하면 명령의 재배열이나 변수의 삭제로 인해 소스와의 대응을 알기 어려워집니다. 제품으로 빠른 프로그램을 만들 때는 높은 최적화 수준을, 크기를 줄이고 싶을 때는 크기 우선 설정을 사용합니다.

  • A. 빠른 프로그램에는 높은 최적화 수준을 사용합니다.
  • B. 올바릅니다. 소스와의 대응을 알기 쉬워 디버깅에 적합합니다.
  • C. 크기를 줄이려면 크기 우선 설정을 사용합니다.
이 분야 연습하기 분야로 돌아가기

컴파일러의 다른 문제

  1. 프로파일을 이용한 최적화(PGO)에 대한 설명으로 올바른 것은?
  2. 링크 시 최적화(LTO)로 가능해지는 최적화로 가장 적절한 것은?
  3. C 언어에서 부호 있는 정수의 오버플로는 미정의 동작이다. 이 전제에서 위의 함수를 최적화하는 컴파일러가 생성할 수 있는 코드로 올바른 것은?
  4. 프로그램의 오류 중 컴파일 시점에 발견할 수 있는 것은?
  5. 정적 타입을 가진 언어에서 컴파일러가 타입 검사를 하는 주된 이점은?

이 분야의 비교