태그: 데이터지향설계
3편
-
C++ 데이터 지향 설계 실전 | SoA·캐시 친화적 레이아웃·ECS·핫/콜드 분리 가이드
10만 개 엔티티 업데이트가 60fps를 못 넘는 문제를 AoS에서 SoA로 바꾸는 예제로 풀고, 캐시 친화적 레이아웃, SoA 기반 ECS, 핫/콜드 데이터 분리를 C++ 코드로 보여줍니다. SoA로 바꿨는데 오히려 느려지는 경우도 설명합니다.
-
C++로 ECS 구현하기: Entity·Component 스토리지·System·쿼리 설계
적이 드롭 아이템으로 바뀌고 플레이어가 몬스터에 빙의하는 요구 앞에서 상속 계층이 무너지는 이유를 짚고 ECS로 다시 설계합니다. ID 기반 Entity, AoS와 SoA 컴포넌트 스토리지, 컴포넌트 조합을 쿼리하는 System, 실행 순서와 삭제 시 댕글링 문제를 다룹니다.
-
C++ 캐시 효율적인 코드: 데이터 지향 설계 가이드
데이터 지향 설계와 캐시 라인 정렬·패딩으로 메모리 접근 비용을 줄이는 방법을 다룹니다. AoS와 SoA의 차이, 거짓 공유를 alignas로 없애는 법, perf로 캐시 미스를 확인하는 법, SoA로 바꿀 때 생기는 인덱스 불일치 같은 실수를 예제로 설명합니다.