함정 질문3GHz짜리를 6GHz로 바꾸면 우리 서버가 정말 두 배로 빨라질까요?
1초에 누를 수 있는 버튼
3,000,000,000
한 번 기다리는 시간
100 ns
그동안 놀게 되는 박자
300번
버튼을 누르는 중 — 명령 하나에 박자 하나입니다.
클럭을 2배로 올려도 기다리는 시간은 그대로입니다 — 노는 박자만 600번으로 늘어납니다. 기본값 100나노초는 메인 메모리에서 한 번 읽는 대표 시간입니다(다음 장의 사다리 표에 있는 값).
문장 따라가기
1/36GHz가 2배면 정말 2배 빨라질까요?
텍스트 모드에서는 3초마다 다음 문장으로 넘어갑니다.
아무리 손이 빠른 은행원이라도, 서류가 금고에서 도착하지 않으면 할 수 있는 일이 없습니다. 손이 두 배 빨라져도 서류가 오는 시간은 그대로입니다.
CPU도 같습니다. 클럭은 박자입니다 — 박자에 맞춰 버튼을 하나씩 누릅니다. 그런데 다음에 쓸 값이 아직 도착하지 않았다면 누를 버튼이 없습니다.
위 타임라인에서 초록 칸은 버튼을 누른 박자, 빈 칸은 누를 게 없어 그냥 흘려보낸 박자입니다. 슬라이더로 클럭을 올려 보면 빈 칸이 줄어드는 게 아니라 늘어납니다.
계산 · 지금 계산됨
메모리에서 값 하나를 가져오는 데 100나노초가 걸립니다. 그동안 3GHz CPU는 박자를 300번 그냥 흘려보냅니다 — 누를 버튼이 없어서입니다.
여기서 클럭만 6GHz로 올리면 어떻게 될까요? 기다리는 100나노초는 그대로고, 노는 박자만 600번으로 늘어납니다. 빨라진 것은 "실제로 일한 부분"뿐입니다.
이 숫자는 문구에 박아둔 값이 아니라, 이 화면을 그릴 때 산수로 계산한 값입니다.
한 문장으로
클럭은 일할 때의 속도일 뿐, 기다리는 시간은 줄여주지 않습니다.
진도는 이 브라우저에만 저장됩니다 (계정·기기 간 동기화 없음).
1.기다리는 시간이 대부분인 작업에서 CPU 클럭을 2배로 올리면?
2.3GHz CPU가 메모리 한 번을 기다리는 동안 흘려보내는 박자는 어느 쪽에 가깝나요?
3.같은 프로그램에서 클럭만 두 배로 올렸습니다. 확실히 두 배가 되는 것은?