Object Pooling

정은재·2024년 5월 1일
0

오늘은 최적화 기법중 하나인 오브젝트 풀링에 대해서 알아봤습니다.

오브젝트 풀링이란?

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

쉽게말해 필요한 오브젝트를 미리 만들어두고 필요할 때 빼서 쓰고 다시 반납하도록 하는 기법

  • 가비지 컬렉팅으로 인한 프레임 드랍

Unity에서 기본적으로 사용되는 오브젝트 생성 삭제 함수는 Instantiate , Destroy이다
이 함수를 사용하게 되면 메모리를 생성하고 리소스를 로드하는 등의 초기화 과정이 필요하고 파괴는 파괴 이후 발생하는 가비지 컬렉팅으로 인한 프레임 드랍이 발생할 수 있습니다.

//가비지 컬렉터 글 올리기 및 링크 작성

  • 메모리 파편화

처음에 메모리가 연속적으로 할당되고 실행 중 메모리가 중간중간 해제되는 경우 새로운 메모리가 할당되려고 할 때, 그 중간에 빈 메모리 사이즈보다 크면 새롭게 채워지지 못하고 마지막 메모리 다음에 할당되게 된다. 그 이후 또 메모리를 할당할 때, 전체적으로 보면 메모리는 남지만 연속적인 메모리 공간은 없어서 메모리 할당에 실패할 수 있다.

즉, 메모리는 남지만 메모리가 부족한 역설적인 상황이 발생할 수 있다.

profile
새로운 상황에서 최선을 다하고 최대한 배울 수 있다고 끊임없이 자신을 설득 해야한다.

0개의 댓글