성능 분석

배열의 크기를 조금씩 키우면서 배열을 반복해서 읽는 처리의 요소 1개당 시간을 측정하면, 특정 크기마다 시간이 단계적으로 늘어난다. 그 이유로 올바른 것은?

  1. A배열이 커질수록 CPU 주파수가 반드시 내려가기 때문에
  2. B배열이 L1·L2·L3 캐시의 용량을 차례로 넘을 때마다 데이터가 더 느린 기억장치에서 읽히게 되기 때문에
  3. C배열의 크기에 따라 덧셈의 결과가 달라지기 때문에
정답과 해설 보기

정답: B. 배열이 L1·L2·L3 캐시의 용량을 차례로 넘을 때마다 데이터가 더 느린 기억장치에서 읽히게 되기 때문에

배열이 작을 때는 L1 캐시에 들어가 빠르게 읽히지만, L1 용량을 넘으면 L2에서, 다시 L2나 L3를 넘으면 주기억장치에서 읽게 되어 그때마다 요소 1개당 시간이 단계적으로 늘어납니다. 이 측정 방법으로 캐시의 용량과 각각의 속도를 대략 알아낼 수 있습니다. 프로그램이 반복해서 사용하는 데이터의 크기(워킹 셋)를 캐시에 맞추는 것이 성능에 크게 영향을 주는 이유도 알 수 있습니다.

  • A. 주파수는 배열 크기로 결정되지 않습니다.
  • B. 올바릅니다. 메모리 계층의 용량이 단차로 나타납니다.
  • C. 계산 결과는 달라지지 않습니다.
이 분야 연습하기 분야로 돌아가기

성능 분석의 다른 문제

  1. 프로그램의 CPU 실행 시간을 나타내는 기본 식으로 올바른 것은?
  2. 명령어 10억 개를 실행하는 프로그램을 평균 CPI가 2, 클럭 주파수가 2 GHz인 CPU에서 실행했다. 실행 시간은 얼마인가?
  3. CPU 설계 변경으로 클럭 주파수는 1.5배가 되었지만 CPI도 1.2배로 늘었다(명령어 수는 동일). 실행 속도는 원래의 몇 배가 되는가?
  4. 컴파일러의 새로운 최적화로 실행하는 명령어 수는 20% 줄었지만 평균 CPI가 10% 늘었다(주파수는 동일). 이 최적화의 효과로 올바른 것은?
  5. 어떤 프로그램의 명령어 비율이 정수 연산 50%(CPI 1), 로드와 스토어 30%(CPI 2), 분기 20%(CPI 5)였다. 평균 CPI는 얼마인가?