컴파일러
루프 전개(루프 언롤링)의 주된 효과로 올바른 것은?
- A횟수 판정과 분기의 오버헤드가 줄고 명령도 재배열하기 쉬워진다
- B루프의 본체가 1번 분량만 남아 프로그램의 코드가 작아진다
- C루프를 함수로 분리하여 다른 곳에서 호출할 수 있게 한다
정답과 해설 보기
정답: A. 횟수 판정과 분기의 오버헤드가 줄고 명령도 재배열하기 쉬워진다
루프 전개는 루프의 본체를 예를 들어 4번 분량 나열해 쓰고 반복 횟수를 4분의 1로 줄이는 최적화입니다. 횟수 판정과 분기 명령이 줄 뿐 아니라, 나열한 본체끼리의 명령을 조합해 재배열할 수 있으므로 연산의 대기 시간을 메우기 쉬워집니다. 그 대신 코드는 커지고 명령 캐시를 압박하기도 합니다. 본체가 1번 분량이 되어 코드가 작아진다는 것은 반대의 설명이며, 루프를 함수로 분리하는 것은 다른 변환입니다.
- A. 올바릅니다. 분기 등의 오버헤드가 줄고 명령을 재배열하기 쉬워집니다.
- B. 본체를 여러 개 나열하므로 코드는 오히려 커집니다.
- C. 함수로 분리하는 것은 다른 변환입니다.