Unreal C++ · Memory

UObject/Non-UObject 메모리 관리 분기

GC 대상 UObject와 C++ 직접 관리 메모리가 서로 다른 수명 규칙을 갖는다는 점을 최적화 경로로 구분한다.

01

객체 종류 분류

UObject인지, 일반 C++ 객체인지, 에셋 리소스인지 먼저 구분한다.

classify
02

참조 경로 확인

UObject는 UPROPERTY, Root, Outer 관계가 GC 생존 여부를 좌우한다.

reference
03

수명 정책 적용

일반 C++ 객체는 unique/shared pointer, 스택 수명, 명시 해제를 기준으로 관리한다.

RAII
04

메모리 비용 축소

텍스처, 메시, 애니메이션은 LOD, streaming, 압축 설정으로 줄인다.

asset
UObject leak
참조가 남아 GC 불가 불필요한 UPROPERTY, delegate binding, singleton 참조를 점검한다.
GC
Native leak
해제 책임 누락 new/delete 직접 사용보다 RAII 컨테이너와 smart pointer를 우선한다.
C++
Asset memory
콘텐츠 예산 초과 Texture 크기, Mesh LOD, streaming pool 사용량을 확인한다.
content

메모리 수명 점검

Reference Viewer 에셋과 UObject 참조 경로를 시각적으로 확인한다.
Unreal Insights 할당 증가와 GC 시간을 추적한다.
Delegate 해제 객체 파괴 시 바인딩이 남아 생존을 붙잡지 않는지 본다.