성능 분석
함수의 입구와 출구에 시간을 재는 코드를 넣어 기록하는 계측(인스트루멘테이션) 방식 프로파일러에 대해 올바른 것은?
- A기록 처리에는 시간이 전혀 들지 않는다
- B호출된 횟수 등을 정확하게 기록할 수 있지만 기록 처리 자체가 시간을 쓰므로, 특히 작은 함수가 많은 프로그램에서는 결과가 왜곡될 수 있다
- C함수의 입구와 출구는 어떤 프로그램에도 존재하지 않는다
정답과 해설 보기
정답: B. 호출된 횟수 등을 정확하게 기록할 수 있지만 기록 처리 자체가 시간을 쓰므로, 특히 작은 함수가 많은 프로그램에서는 결과가 왜곡될 수 있다
계측 방식에서는 모든 함수 호출을 기록하므로 횟수나 호출 관계를 빠짐없이 정확하게 알 수 있습니다. 그러나 기록을 위한 처리가 함수가 호출될 때마다 추가되므로, 작은 함수가 매우 많이 호출되는 프로그램에서는 기록 시간이 본래 처리 시간을 웃돌기도 합니다. 그래서 시간의 비율은 샘플링 방식으로, 정확한 횟수는 계측 방식으로 구분하여 사용합니다.
- A. 기록을 위한 명령어가 실행되므로 시간이 걸립니다.
- B. 올바릅니다. 측정함으로써 측정 대상이 바뀌어 버리는 예입니다.
- C. 함수에는 반드시 입구와 출구가 있습니다.