Updated:

less than 1 minute read

개요

  • 다차원 배열을 선형 저장소에 저장하는 방법
  • row major
    • 행 순서로 저장
    • a11, a12, a13, a21, a22, …
    • C/C++/Objective-C, PL/I, Pascal, Speakeasy, SAS
  • columnm major
    • 열 순서로 저장
    • a11, a21, a31, a12, a22, …
    • Fortran, MATLAB, GNU Octave, Julia, S, S-PLUS, R, Scilab, Yorick, Rasdaman
  • 순서가 중요한 이유
    • 캐시
    • 3X3 배열에서 순차 접근하고 한번에 3개씩 데이터를 가져와서 캐시에 저장한다고 가정
      • row major
        • 저장소 접근 3회, 캐시 접근 6회
      • columnm major
        • 저장소 접근 9회, 캐시 접근 0회
      • 캐시 접근 보다 저장소 접근이 훨씬 느리므로 접근 순서에 따른 성능차이 발생
  • 언어나 라이브러리에 따라 접근 순서를 유의하며 사용 권장