EveryDay.DevUp

[Unity] GC 최적화 본문

Unity/최적화

[Unity] GC 최적화

EveryDay.DevUp 2020. 5. 1. 19:37

Unity에서 가이드하는 GC 최적화

1. GC 호출 시기를 짧은 주기로 반복적으로 실행

▶ GC가 필요 이상 호출되지만, 짧은 주기로 실행되기 때문에 그 사이에 쌓인 메모리가 적어 빠르게 GC가 수행됨

2. 초기 큰 힙 메모리를 설정

▶ Mono는 런타임에 힙을 확장하는 것을 최대한 회피하려고 하기 때문에, 수동으로 큰 배열을 만들어 강제로 힙 메모리를 키움

▶ 초기 메모리가 크게 할당 되기 때문에 메모리 부족으로 인한 GC 호출을 최소화 할 수 있음

3. 재사용 가능한 오브젝트 풀 생성

▶ 반복적으로 생성/삭제 되는 게임 오브젝트를 Pool로 관리함으로써 최소한의 오브젝트 생성으로 메모리를 관리

4. 점진적 가비지 콜렉션 사용

▶ Unity에서 현재 프리뷰로 제공하는 기능으로써, GC의 수행을 분할하여 실행되도록 하는 것 

▶ Player Settings에 User incremental GC 옵션을 활성화 시 사용 가능

 

#참고자료

- Unity : https://docs.unity3d.com/kr/current/Manual/UnderstandingAutomaticMemoryManagement.html