namespace GameServerCore
{
class Program
{
static void Main(string[] args)
{
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}");
}
}
}
}
(C#)
전자 < 후자
이유: 2d 어레이에서 가로줄로 순차적으로 순회하는게 세로로 순회하는 것보다 빠르게 때문
ex. 5x5에서
[], [], [], [], []
[], [], [], [], []
...
일때 가로로 한줄씩 순회하는 게 공간면에서 더 가까움.
캐쉬는 메모리의 물리적 거리를 고려해 가까운 것 부터 미리 캐싱해두므로 이게 더 빠름.
'cs' 카테고리의 다른 글
쿠버네티스 (0) | 2022.12.26 |
---|---|
객체지향 프로그래밍 3요소 5원칙 (0) | 2021.04.19 |
Big-O의 수학적 정의 (0) | 2021.03.08 |