cpu의 속도는 시간이 흐르면서 매우 빨라졌지만 아쉽게도 저장장치인 램은 그러지 못했다.

따라서 프로그램이 돌아가는 원리를 안다면 이러한 상황이 어떤 문제를 만드는지 이해할 것이다.


메모리에서 cpu로 데이터를 보내는데 읽는 속도가 너무 느리기 때문에

cpu가 빠르게 읽을 수 있도록 캐시 메모리를 cpu에 내장시켰다.


캐시 메모리에 데이터를 올릴때 해당 데이터 주변의 데이터들도 같이 올리는데

만약에 해당 데이터를 사용하고 나서 주변에 원하는 데이터가 있다면 빠르게 접근할 수 있다.

하지만 메모리 주소를 넘나드는 기존의 객체지향 방식은 캐시 미스가 발생하기 쉽다.

따라서 데이터 중심 디자인이 그 대안인데 자주 사용하는 데이터 끼리 메모리 상에서 인접한 위치에 두자는 것이다.


속도는 대규모 게임이건 아니건 간에 항상 중요한 문제다. 인디 레벨에서 필요할지 아닐지는 선택하는 것은 당신의 몫이다.


끝.





스크래치에서 테스트 한번 돌려봤는데 속도가 몇십배 차이남.

아마 유니티나 게임메이커도 비슷하지 않을까 싶음.


전에 올린 코드인데 비슷한 데이터 끼리 묶어놓고 모든 데이터들이 연속된 메모리에 올라갈 수 있게끔 구조를 잡았음.

그 결과 좀 난해하고 조잡하게 보이긴 하는데 난 이게 더 편한듯.