Unreal - Garbage Collector, Smart Pointer

Overcle·2023년 3월 9일
0

Unreal Study

목록 보기
4/5

언리얼은 메모리를 어떻게 관리하는가?


언리얼의 가비지 컬렉터란?

언리얼 엔진은 가비지 컬렉터 통칭. GC를 사용하여
런타임중에 생성된 오브젝트의 메모리 할당 및 해제를 관리함.
GC는 객체를 참조하고 추척하여 더이상 필요하지 않다고 판단한 객체는 메모리를 해제하는
Mask And Sweep 가비지 컬렉터 이다.

판단 기준은 무엇인가?

언리얼에서의 각 객체는 참조 횟수가 표시되며. 이는 해당 객체를 누가 참조하는지.
그 참조된 객체는 자주 사용되는 객체인지의 수를 나타냅니다.
객체의 수가 0이 도달하게 되면. 다른 개체가 참조하지 않다는 뜻이며.
가비지 컬렉터는 삭제할 수 있는 객체로 인지합니다.

가비지 컬렉터는 주기적으로 실행되며. 앞서 판단한 개체를 식별하고 해제하여.
메모리를 회수하고 누수의 가능성을 줄이도록 설계 되어있습니다.

참조 횟수는 어떻게 관리되는가?

언리얼에서는 객체에 대한 참조카운팅을 자동으로 관리하는 스마트 포인터가 등장하게 됩니다.
스마트 포인터는 객체의 참조 수를 추적하는데 사용되며.
필요에 따라 참조 수를 늘리거나 줄일 수 있습니다.
참조 횟수가 0이 되면 자동으로 삭제 됩니다.

가비지와 스마트 포인터 연관성?

언리얼엔진에서 가비지와 스마트 포인터는 함께 작동 되도록 되어 있습니다.
전반적으로 메모리의 할당 및 해제를 자동으로 관리하여 누수를 방지하여 개발자가 게임 제작에
더욱 집중할 수 있도록 목적으로 등장했지만.

개발자는 이를 맹신하지 말고. 자신이 만든 설계에서 최대한 메모리에 대한 생각을 유지하도록
해야합니다.
가비지와 스마트 포인터를 믿되 맹신하지는 않도록.

Smart Pointer


추후 공부해서 추가예쩡~

profile
게임 프로그래머 지망생의 발자취

0개의 댓글