성능 분석

실행 시간 측정 방법 중 「벽시계 시간(wall-clock time)」과 「CPU 시간」의 차이로 올바른 것은?

  1. A벽시계 시간은 시작부터 끝까지 실제로 경과한 시간으로 입출력 대기 등도 포함하며, CPU 시간은 CPU가 그 프로그램을 실행하고 있던 시간만 센다
  2. B벽시계 시간과 CPU 시간은 반드시 같은 값이 된다
  3. CCPU 시간은 방의 시계로 잰 시간을 말한다
정답과 해설 보기

정답: A. 벽시계 시간은 시작부터 끝까지 실제로 경과한 시간으로 입출력 대기 등도 포함하며, CPU 시간은 CPU가 그 프로그램을 실행하고 있던 시간만 센다

벽시계 시간은 사용자가 실제로 기다리는 시간으로, 디스크나 네트워크 대기, 다른 프로그램에 순서를 양보하고 있던 시간도 포함합니다. CPU 시간은 CPU가 그 프로그램의 명령어를 실행하고 있던 시간의 합계입니다. 벽시계 시간이 CPU 시간보다 훨씬 길면 무언가를 기다리는 시간이 길다는 것을 알 수 있습니다. 반대로 여러 스레드로 병렬 실행하면 CPU 시간의 합계가 벽시계 시간보다 길어집니다.

  • A. 올바릅니다. 둘의 차이로 대기 시간을 알 수 있습니다.
  • B. 대기나 병렬 실행이 있으면 다른 값이 됩니다.
  • C. 방의 시계로 재는 것은 벽시계 시간입니다.
이 분야 연습하기 분야로 돌아가기

성능 분석의 다른 문제

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