C++ · PERF

캐시 친화적 순회와 메모리 배치

CPU는 메모리를 한 값씩이 아니라 cache line 단위로 가져오므로, 연속 배치와 순회 순서가 성능에 큰 영향을 줍니다.

캐시 친화적 순회와 메모리 배치 구조

cache line
vector loop연속 메모리로 prefetch 유리
cache hit인접 원소를 같은 line에서 사용
pointer chain다음 주소가 흩어져 miss 증가
레이아웃 선택 기준AoS/SoA를 접근 패턴에 맞춤
vector loopcache hitpointer chain레이아웃 선택 기준

캐시 친화적 순회와 메모리 배치 기준

점검
지역성시간 지역성과 공간 지역성을 모두 고려합니다.
자료구조list보다 vector가 빠른 경우는 캐시 효율 때문일 수 있습니다.
측정최적화 전후는 벤치마크와 프로파일러로 확인합니다.
핫 패스자주 도는 루프의 메모리 접근 순서를 먼저 봅니다.