성능 분석

매우 짧은 처리의 시간을 한 번만 측정하려 할 때의 문제와 그 대책의 조합으로 올바른 것은?

  1. A짧은 처리는 시간이 걸리지 않으므로 측정할 필요가 없다
  2. B짧은 처리를 측정하면 CPU가 고장난다
  3. C시계의 분해능이나 시각을 읽는 데 드는 비용에 비해 처리가 너무 짧아 정확하게 측정할 수 없다. 처리를 여러 번 반복하여 합계 시간을 측정하고 횟수로 나눈다
정답과 해설 보기

정답: C. 시계의 분해능이나 시각을 읽는 데 드는 비용에 비해 처리가 너무 짧아 정확하게 측정할 수 없다. 처리를 여러 번 반복하여 합계 시간을 측정하고 횟수로 나눈다

시각을 읽는 함수에는 시계 눈금의 세밀함(분해능)의 한계와 함수를 호출하는 것 자체에 드는 시간이 있습니다. 측정하려는 처리가 이들과 비슷하거나 더 짧으면 결과는 거의 측정 오차가 됩니다. 처리를 수천, 수만 번 반복해 전체 시간을 측정하고 횟수로 나누면 1회당 시간을 정확하게 어림할 수 있습니다. 다만 반복하면 캐시에 올라가기 쉬워지는 등 실제 사용 방식과 조건이 달라지는 점에 유의해야 합니다.

  • A. 짧은 처리라도 여러 번 호출되면 큰 시간이 됩니다.
  • B. CPU가 고장나는 일은 없습니다.
  • C. 올바릅니다. 측정 비용의 영향을 줄일 수 있습니다.
이 분야 연습하기 분야로 돌아가기

성능 분석의 다른 문제

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