[golang] 메모리 지역성을 고려한 2차원 슬라이스 순회
·
Language/Go
서론2차원 슬라이스를 순회할 때 성능에 큰 영향을 미치는 요소 중 하나는 메모리 지역성이다. 메모리 지역성이란 CPU가 데이터를 빠르게 접근하기 위해 메모리에서 데이터를 어떻게 참조하는지에 대한 패턴을 의미한다. CPU 캐시는 메모리의 연속적인 데이터를 빠르게 읽을 수 있는 공간적 지역성 특성을 갖고 있다. 공간적 지역성은 연속된 메모리 주소의 데이터가 자주 참조되는 특성으로 하나의 데이터가 참조되면 그 인접한 데이터도 순차적으로 참조될 확률이 높다는 것이다. 이러한 특성으로 연속적인 메모리 접근은 성능상 유리하다. 반대로 불연속적인 메모리 접근은 캐시 미스를 유발하고 이로 인해 성능 저하를 초래할 수 있다.이 글에서는 메모리 지역성을 고려하여 2차원 슬라이스를 순회할 때 행 우선 순회와 열 우선 순회의..