Unity3D/최적화
2023. 2. 14.
unity3D - 오브젝트 풀링과 메모리 단편화의 관계
C#의 GC는 mask-sweep-compact로 구성된 3단계의 과정을 통해 메모리 단편화를 해결한다. 1) Root set으로부터 여전히 참조되고 있는 객체에 표시(mark) 2) 마킹되지 않은 오브젝트는 해제(sweep) 3) hole을 제거하기 위해 메모리 재정렬(align) -> 메모리 복사-이동이 일어난다. 이전 포스팅에도 언급했지만, Unity의 GC는 C#의 GC와 달리 compaction이 발생하지 않는다. 기본적으로 memory hole은 객체의 생성/해제 과정에서 발생한다. 따라서, Unity3D에서 메모리 단편화를 최소화하기 위해선, 생성과 할당/제거를 최소화해야 한다. 가장 대표적인 방법이 바로 오브젝트 풀링이다. Q. 유니티에서 메모리 단편화를 해소하기 위한 방법으로 무엇이 있나..