728x90
반응형

pooling 2

Object Pool, 오브젝트 풀, 객체 풀 [디자인패턴](최적화)

의도는 객체를 매번 할당, 해제하지 않고 고정 크기 풀에 들어있는 객체를 재사용함으로써 메모리 사용 성능을 개선한다. ?? 해제하지 않는데.. 어떻게 메모리 사용 성능이 개선된다는거지??? 알아보자 게임에서는 시각적 효과가 필요하다. 플레이어가 마법을 쓰면 빛이 나고 플레이어가 총을 쏘면 총알이 날라간다. 그 중에서 빛은 파티클 시스템이 필요하다. 마법을 몇 번 쓰는 것만으로도 수많은 파티클 생성되어야 하기 때문에.. 굉장히 빠르게 만들 수 있어야 한다. 더욱 중요한 것은 파티클을 생성, 제거하는 과정에 메모리 단편화가 생겨서 안 된다는 점이다. **메모리 단편화는 경계해야 한다. 단편화란 힙에 사용 가능한 메모리 공간이 크게 뭉쳐 있지 않고 작게 조각나 있는 상태를 말한다. 그림을 보자 ?? 메모리는 ..

Object Pooling, 오브젝트 풀링, 디자인 패턴 [Game Development]

게임을 조금 더 개발자의 입장에서 용이하게 만들어주는 디자인 패턴인 오브젝트 풀링에 대해서 알아보자 **딱히 어떠한 게임엔진에 국한된 패턴은 아니다. 그냥 ~한 개념이다. 우선 오브젝트 풀링이란 것이 무엇인가? 오브젝트 풀링이란 오브젝트를 재활용하기 위한 디자인 패턴을 의미한다. **여기서 재활용이란 정말 다시 활용하는 것을 의미한다. 예를 들자면 총알, bullet이 가장 대표적이다. 우리가 흔히 총을 쏠 때 버튼을 누르면 총알이 생기고 날아가게끔 만든다. 근데 미니건 쏜다고 생각해보자. 1분에 600발이었나 K-2가? 우습지 미니건 쏘면 1분에 몇천 발 쓸건데.. 그렇게 되면 몇천개의 총알을 만들어야 한다. 여기서 생각한 것이 ... 좀 아까운데..? 아니 쏠 때마다 오브젝트 만들면... 몇천 발이 ..

728x90
반응형