지역성을 정의로만 외운 사람과, 캐시 미스율·실행 시간을 측정해서 접근 패턴을 바꿔본 사람을 가르는 질문이다. 정답을 하나로 단정하는지, 측정 후 트레이드오프를 말하는지로 깊이를 본다.
참조 지역성은 "방금 본 데이터를 또 본다(시간 지역성)"와 "옆에 있는 데이터를 같이 본다(공간 지역성)"는 두 경향이다. CPU 캐시·TLB·페이지 캐시는 이 경향을 전제로 동작하기 때문에, 같은 알고리즘이라도 데이터 배치와 접근 순서가 캐시 미스율을 가른다. 최적화의 핵심은 Big-O가 아니라 "한 캐시 라인이 올라오는 동안 그 라인을 얼마나 빨아먹는가"다.
이중 루프 순서를 뒤집어 실행 시간이 몇 배 줄었던 경험이 있다면 캐시 라인 단위 접근으로 설명할 수 있다
이미지·행렬·CSV 같은 큰 배열을 다뤄봤다면 행·열 우선 차이를 자기 코드 예시로 풀 수 있다
프로파일러로 hot path를 좁혀본 경험이 있다면 "무엇을 보고 캐시 미스라고 판단했는지" 측정 기준을 답에 녹일 수 있다
멀티스레드에서 락이 없는데도 안 빨라졌던 일이 있었다면 false sharing 의심 사례로 연결할 수 있다
아직 공개된 답변이 없어요. 첫 공개 답변을 남겨보세요.