성능 이슈를 볼 때 algorithm complexity만 확인하면 충분하다고 생각하기 쉽습니다.하지만 같은 O(n) 코드라도 data layout과 memory access pattern에 따라 실제 실행 시간은 크게 달라질 수 있습니다.CPU는 main memory에서 값을 매번 직접 읽지 않고, cache line 단위로 데이터를 가져와 L1, L2, L3 cache를 통해 접근 비용을 줄입니다.이 구조를 이해하면 왜 연속된 배열 접근이 빠르고, 왜 멀티스레드 코드에서 서로 다른 변수만 수정해도 느려질 수 있는지 설명할 수 있습니다. Cache locality는 CPU가 이미 가져온 cache line을 얼마나 잘 재사용하는가의 문제이고, false sharing은 서로 다른 data가 같은 cac..