성능 분석

함수의 입구와 출구에 시간을 재는 코드를 넣어 기록하는 계측(인스트루멘테이션) 방식 프로파일러에 대해 올바른 것은?

  1. A기록 처리에는 시간이 전혀 들지 않는다
  2. B호출된 횟수 등을 정확하게 기록할 수 있지만 기록 처리 자체가 시간을 쓰므로, 특히 작은 함수가 많은 프로그램에서는 결과가 왜곡될 수 있다
  3. C함수의 입구와 출구는 어떤 프로그램에도 존재하지 않는다
정답과 해설 보기

정답: B. 호출된 횟수 등을 정확하게 기록할 수 있지만 기록 처리 자체가 시간을 쓰므로, 특히 작은 함수가 많은 프로그램에서는 결과가 왜곡될 수 있다

계측 방식에서는 모든 함수 호출을 기록하므로 횟수나 호출 관계를 빠짐없이 정확하게 알 수 있습니다. 그러나 기록을 위한 처리가 함수가 호출될 때마다 추가되므로, 작은 함수가 매우 많이 호출되는 프로그램에서는 기록 시간이 본래 처리 시간을 웃돌기도 합니다. 그래서 시간의 비율은 샘플링 방식으로, 정확한 횟수는 계측 방식으로 구분하여 사용합니다.

  • A. 기록을 위한 명령어가 실행되므로 시간이 걸립니다.
  • B. 올바릅니다. 측정함으로써 측정 대상이 바뀌어 버리는 예입니다.
  • C. 함수에는 반드시 입구와 출구가 있습니다.
이 분야 연습하기 분야로 돌아가기

성능 분석의 다른 문제

  1. 프로그램 성능 분석에서 말하는 핫스폿(hotspot)에 대한 설명으로 올바른 것은?
  2. 프로파일 결과를 나타내는 플레임 그래프(flame graph)를 읽는 방법으로 올바른 것은?
  3. CPU에 내장된 성능 카운터(PMU)로 셀 수 있는 것의 예로 올바른 것은?
  4. 성능 카운터로 측정했더니 어떤 프로그램의 IPC(1사이클당 명령어 수)가 0.3으로 매우 낮고, 마지막 단계 캐시의 미스가 많았다. 가장 가능성이 높은 상황과 대책의 조합은?
  5. 성능 카운터로 분기 예측 미스가 매우 많다는 것을 알았다. 개선 방법에 해당하는 것은?