Cache는 메인 메모리인 RAM과 CPU 사이에 위치한 고속 메모리 입니다. CPU 는 명령어와 데이터를 Cache에서 먼저 찾고 없으면 RAM에 접근합니다. CPU는 RAM보다 훨씬 접근이 빠르기에 가능한 많은 데이터를 Cache에 저장하는것이 좋습니다.
1. 연속된 메모리 공간 사용하기
- 연속된 메모리 공간을 사용하면 캐시 히트 확률이 올라갑니다. 연속 메모리 공간을 사용하는 vector가 list 보다 캐시 히트 확률이 높습니다.
2. 지역성
- 시간 지역성 : 최근에 접근한 데이터 반복 접근
ex) for문을 사용할때 같은 메모리 참조
- 공간 지역성 : 인접한 메모리 접근 확률 높을때
ex) 벡터의 연속된 메모리 공간
3. 열보단 행에 우선 접근하기
- 행은 연속적 메모리 공간임으로, 캐시 히트 확률이 올라갑니다.
'C++' 카테고리의 다른 글
[C++] 스택 오버플로우 (0) | 2024.12.18 |
---|---|
[C++] 인터페이스 (0) | 2024.12.17 |
[C++] RTTI (0) | 2024.12.17 |
[C++] vtable과 vptr (0) | 2024.12.16 |
[C++] 메모리 오버헤드 줄이기 (0) | 2024.12.15 |