성능 분석
프로그램이 느린데 CPU 사용률이 20% 정도로 낮았다. 가장 가능성이 높은 원인은?
- ACPU 계산이 너무 빠르다
- B프로그램의 명령어 수가 너무 적다
- C디스크나 네트워크의 입출력 대기, 락 대기 등으로 CPU를 사용하지 않고 기다리는 시간이 길다
정답과 해설 보기
정답: C. 디스크나 네트워크의 입출력 대기, 락 대기 등으로 CPU를 사용하지 않고 기다리는 시간이 길다
CPU 사용률이 낮은데 프로그램이 느리다면, 시간의 대부분은 CPU 바깥의 무언가를 기다리고 있다고 볼 수 있습니다. 디스크 읽기·쓰기, 네트워크 응답, 다른 스레드가 가진 락의 해제 등입니다. 이 경우 CPU를 빠르게 하거나 계산 코드를 최적화해도 효과가 거의 없습니다. 입출력을 모으거나, 비동기로 하여 대기하는 동안 다른 처리를 진행하거나, 락의 범위를 작게 하는 등이 유효합니다.
- A. 너무 빠른 것이 느림의 원인이 되지는 않습니다.
- B. 명령어가 적은 것은 느림의 원인이 되지 않습니다.
- C. 올바릅니다. CPU를 빠르게 해도 해결되지 않습니다.