Object Pooling

심지태
∙∙조회 10
Object Pooling

출처: https://whiny.tistory.com/17 [호리의 개발 공부:티스토리]

오브젝트 풀링

오브젝트의 Pool 즉 웅덩이를 만들어두고, 그 웅덩이 안에서 필요할 때마다 객체를 꺼내서 사용하는 것을 뜻합니다.

게임에서는 엄청나게 많고 다양한 오브젝트를 사용하는데, 이런 오브젝트들을 실시간으로 생성하고, 파괴하고를 반복하면 수천수백의 오브젝트들이 게임상에서 등장하고 사라질 때, 새로 오브젝트들을 생성하고 거기에 파괴하면 메모리를 할당하고 해제하는 일이 반복될 것입니다.

할당과 해제는 CPU가 담당하고, CPU에 부담이 오브젝트가 많아질수록 더해지게 됩니다. 게다가 유니티에서 메모리 해제를 하며 가비지 컬렉터가 발생하는데, 많은 오브젝트를 파괴할수록 많은 가비지 컬렉터가 발생하고, 이는 CPU에 더 큰 부담이 됩니다.

생성, 파괴를 반복하는 방식

오브젝트 풀링을 사용하는 방식

오브젝트 풀링 방식은 메모리를 할당 해두기 때문에 메모리를 희생하여 성능을 높이는 것이지만, 실시간으로 작동하는 게임에서의 프레임 차이는 무시할 수 없기 때문에 오브젝트 풀링 방식이 선호 됩니다.