컴파일러

프로파일을 이용한 최적화(PGO)에 대한 설명으로 올바른 것은?

  1. A프로그램의 소스 코드를 읽기 쉽게 다시 정리하는 기능
  2. B컴파일러가 난수로 최적화 방법을 여러 개 고르고 결과를 비교하는 기능
  3. C대표적인 입력으로 실행한 기록을 이용해 다시 컴파일한다
정답과 해설 보기

정답: C. 대표적인 입력으로 실행한 기록을 이용해 다시 컴파일한다

PGO에서는 먼저 계측용 명령을 넣어 컴파일한 프로그램을 대표적인 입력으로 실행하고, 어느 분기가 자주 지나가는지, 어느 함수가 자주 호출되는지 등을 기록합니다. 다음으로 그 정보를 이용해 다시 컴파일하여, 자주 지나가는 경로를 일직선으로 배치하거나 자주 호출되는 함수를 인라인 전개하는 등 실제 사용 방식에 맞는 최적화를 수행합니다. 입력이 실제 사용 방식과 크게 다르면 효과가 떨어지는 점에 주의해야 합니다. 소스의 정리나 난수에 의한 선택이 아닙니다.

  • A. 소스의 정리는 다른 도구의 일입니다.
  • B. 난수로 고르는 것이 아니라 실행 기록을 사용합니다.
  • C. 올바릅니다. 실행 기록을 이용해 다시 컴파일합니다.
이 분야 연습하기 분야로 돌아가기

컴파일러의 다른 문제

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

이 분야의 비교