Destroy함수로 gameObject를 파괴한다고 선언하면 곧바로 메모리에서 사라지는 것이 아니다. Garbage Collector 가 그것을 수거해서 파괴하기 전까지 메모리에 남아있다.
2-1. 64Byte의 A, B, C, D를 할당 받은 상태에서 A와 C를 할당 해제하면 3번과 같이 빈 공간이 생겨난다.
2-2. 이 때, 128Byte의 Object를 생성하려고 하면 A와 C자리에는 공간이 부족해서 D의 뒤에 있는 공간에 할당해야 한다.
2-3. 이 할당 이후에 128Byte 짜리 Object를 하나 더 생성하려고 하면 메모리의 빈 공간만 따졌을 때 128Byte의 공간이 존재하지만 연결된 크기가 128Byte인 공간이 없어서 Object 생성에 실패한다.
⇒ 메모리는 남아있는데 메모리가 부족한 역설적인 상황이 발생
개념 : Object를 담아둘 Object-Pool을 만들고, 여기에 빌려줄 Object를 생성해서 담아준 뒤, 외부에서 이 Object가 필요하면 Object Pool에서 빌려오고, 이 Object를 모두 사용하면 다시 Object Pool에 돌려주는 것.
만약, 외부에서 Object 풀 안에 있는 모든 Object를다 빌려갔다면?
→ 새로운 Object를 생성해서 꺼내준다.
그리고 새로 만든 Object 역시 사용이 끝나서 돌려받으면 파괴하지 않고 Object Pool 이 보관하고 있으면 된다.
⇒ Window > Analysis > Profiler