데이터 지향 설계 입문: 객체 지향 설계 대비 최대 4배 빠른 게임 코드
Introduction to Data-Oriented Design [pdf]
2010년 게임 개발자 컨퍼런스 자료로, 객체 지향 설계(OOD)의 캐시 비효율성을 지적하며 데이터 지향 설계(DOD)로 전환했을 때 성능이 극적으로 개선됨을 보여줍니다. 메모리 접근 지연(latency)이 수백 사이클에 달하는 상황에서, 데이터를 연속적으로 배치하고 필요한 데이터만 읽는 방식으로 바꾸면 단순 루프만으로도 코드가 4배 가까이 빨라질 수 있습니다. 멀티스레딩과 SPU/GPU 같은 보조 처리 장치 활용에도 유리한 DOD의 기본 개념을 예제 코드와 캐시 라인 다이어그램으로 설명합니다.
메모리에서 읽는 데는 3.2GHz에서 약 600사이클이 걸리지만, 300MHz에서는 40사이클이 걸립니다.