컴파일러
JIT 컴파일을 사용하는 실행 환경의 특징으로 올바른 것은?
- A프로그램을 실행하기 전에 모든 것을 기계어로 번역한 뒤 배포한다
- B실행 중에 자주 쓰는 부분을 기계어로 만들고 실행 시의 정보도 활용할 수 있다
- C기계어를 전혀 사용하지 않고 언제까지나 바이트코드를 한 명령씩 해석한다
정답과 해설 보기
정답: B. 실행 중에 자주 쓰는 부분을 기계어로 만들고 실행 시의 정보도 활용할 수 있다
JIT 컴파일에서는 처음에는 바이트코드를 해석하면서 실행하다가, 여러 번 실행되는 부분(핫스폿)을 발견하면 실행 중에 그 부분을 기계어로 컴파일합니다. 실제로 지나가는 분기나 전달되는 타입 같은 실행 시의 정보를 활용하여, 사전에 하는 컴파일로는 어려운 과감한 최적화를 할 수 있습니다. 가정이 빗나가면 해석 실행으로 되돌아가는 구조도 갖추고 있습니다. 사전에 모든 것을 번역하는 것은 사전(AOT) 컴파일, 해석만 계속하는 것은 순수한 인터프리터입니다.
- A. 실행 전에 모두 번역하는 것은 사전(AOT) 컴파일입니다.
- B. 올바릅니다. 실행 중에 기계어로 만들고 실행 시의 정보도 활용할 수 있습니다.
- C. 해석만 계속하는 것은 순수한 인터프리터입니다.