언리얼엔진5 공부

Unreal Garbage Collection

Client Side 2025. 11. 25. 21:05
  • Unreal Garbage Collection
    • Native C++ 메모리 관리의 문제점
      • 할당 받은 메모리는 반드시 프로그래머가 직접 해제까지 해줘야 함.
      • 이를 지키지 않으면 메모리 누수부터 여러 문제점이 발생.
    • Unreal의 메모리 관리
      • Mark-Sweep 방식의 가비지 컬렉션 시스템을 통해 관리됨.
      • 더이상 사용하지 않는 언리얼 오브젝트를 감지하고, 특정 상황에 회수하는 시스템.
      • 루트 셋이라는 UObject 개체 집합이 있음. 이 루트 셋 에서부터 참조 여부를 파악하기 시작한다.
    • Mark-Sweep 방식의 가비지 컬렉션
      • 루트 셋의 UObject 개체가 참조하는 개체를 찾아 Mark.
      • Mark된 개체로부터 해당 개체가 참조하는 또 다른 개체를 찾아서 다시 Mark 반복.
      • 이제 저장소에서 Mark된 개체와 그렇지 않는 개체로 나뉨.
      • 가비지 컬렉터는 저장소에서 Mark되지 않는 개체들의 메모리 회수(Sweep)
    • GUObjectArray
      • 관리되는 모든 언리얼 오브젝트 정보를 저장하는 전역 자료구조.
      • GUObjectArray의 각 요소에는 가비지 컬렉션 관련 플래그 정보가 있음.
      • RootSet 플래그 : 다른 언리얼 오브젝트로부터 참조가 없어도 회수 되지 않음.
      • Garbage 플래그 : 다른 언리얼 오브젝트로부터 참조가 없어서 회수 예정.
    • GCCycle
      • 지정된 주기마다 가비지를 몰아서 없앰. 이 주기를 GCCycle이라 함.
      • Project Setting > Garbage Collection에서 확인 가능.

'언리얼엔진5 공부' 카테고리의 다른 글

언리얼 엔진 멀티플레이 핵심 클래스 상세 분석  (0) 2025.12.02
채팅 프로젝트 생성  (0) 2025.11.27
델리게이트  (0) 2025.11.24
숫자야구_숫자 로직  (0) 2025.11.21
Property Replication  (1) 2025.11.20