성능 분석

프로그램의 실행 시간을 측정할 때 같은 측정을 여러 번 반복하고 처음 몇 번의 결과를 제외하는 경우가 많은 이유로 올바른 것은?

  1. A처음 몇 번은 계산 결과가 반드시 틀리기 때문에
  2. B처음에는 캐시가 비어 있거나 파일 읽기나 실행 시 컴파일이 이루어져 느리고, 측정의 편차도 있기 때문에
  3. C같은 측정을 반복하면 CPU가 빨라지는 회로를 만들기 때문에
정답과 해설 보기

정답: B. 처음에는 캐시가 비어 있거나 파일 읽기나 실행 시 컴파일이 이루어져 느리고, 측정의 편차도 있기 때문에

처음 실행에서는 캐시, TLB, 분기 예측기가 빈 상태에서 시작하고, 파일이 OS 캐시에 없어 디스크에서 읽어야 하며, JIT 컴파일러를 쓰는 언어에서는 기계어로의 변환도 이루어집니다. 그래서 처음 몇 번은 느려집니다. 또한 다른 프로그램, 인터럽트, 온도에 따른 주파수 변화 등으로 측정은 편차가 생기므로, 여러 번 측정하여 평균이나 중앙값, 편차의 크기를 제시하는 것이 중요합니다.

  • A. 결과는 올바르고 시간만 다를 뿐입니다.
  • B. 올바릅니다. 워밍업이라고 부릅니다.
  • C. 회로가 바뀌는 일은 없습니다.
이 분야 연습하기 분야로 돌아가기

성능 분석의 다른 문제

  1. 매우 짧은 처리의 시간을 한 번만 측정하려 할 때의 문제와 그 대책의 조합으로 올바른 것은?
  2. 실행 시간 측정 방법 중 「벽시계 시간(wall-clock time)」과 「CPU 시간」의 차이로 올바른 것은?
  3. 서버 성능을 나타내는 처리량(throughput)과 지연 시간(latency)에 대한 설명으로 올바른 것은?
  4. 웹 서비스의 응답 시간을 평가할 때 평균값뿐 아니라 99퍼센타일 값(느린 쪽 1%의 경계)을 보는 경우가 많은 이유로 올바른 것은?
  5. 어떤 서버에 초당 100건의 요청이 도착하고 1건의 처리에 평균 0.2초가 걸린다(정상 상태로 가정). 서버 안에서 동시에 처리 중인 요청은 평균 몇 건인가(리틀의 법칙)?