본문 바로가기
프로그래밍/Game Dev

[C#] 캐시 메모리 철학

by YuminK 2023. 8. 26.

캐시의 철학

1. 방금 주문한 테이블에서 추가 주문이 나올 확률이 높다. (Temporal Locality)

2. 방금 주문한 사람 근처에 있던 사람이 추가 주문할 확률이 높다. (Spacial Locality)

 

(Spacial Locality)

int[,] arr = new int[10000, 10000];

{
    long now = DateTime.Now.Ticks;
    for (int y = 0; y < 10000; ++y)
        for (int x = 0; x < 10000; ++x)
            arr[y, x] = 1;

    long end = DateTime.Now.Ticks;
    Console.WriteLine($"y, x 순서 걸린 시간 {end - now}");
}

{
    long now = DateTime.Now.Ticks;
    for (int y = 0; y < 10000; ++y)
        for (int x = 0; x < 10000; ++x)
            arr[x, y] = 1;
    long end = DateTime.Now.Ticks;
    Console.WriteLine($"x, y 순서 걸린 시간 {end - now}");
}

 

전자의 경우가 훨씬 빠른데, 이전에 참조했던 메모리 근처에 다시 접근하기 때문이다. (Special Locality)

댓글