- 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에서 확인 가능.
- Native C++ 메모리 관리의 문제점
'언리얼엔진5 공부' 카테고리의 다른 글
| 언리얼 엔진 멀티플레이 핵심 클래스 상세 분석 (0) | 2025.12.02 |
|---|---|
| 채팅 프로젝트 생성 (0) | 2025.11.27 |
| 델리게이트 (0) | 2025.11.24 |
| 숫자야구_숫자 로직 (0) | 2025.11.21 |
| Property Replication (1) | 2025.11.20 |