Hard Reference vs Soft Reference

haura·2025년 2월 12일
0

UE5

목록 보기
11/21

Hard Reference란?

다른 객체에 대해 직접적인 참조를 가지며 해당 객체를 로드할 때 함계 로드되는 방식

  • 블루 프린트에서 캐스팅(casting)을 사용

장점

  1. 간단한 접근 : 다른 객체의 함수나 변수에 접근하기 쉽다.
  2. 즉시 사용 가능 : 참조된 자산은 로드되자마자 바로 사용가능

단점

  1. 메모리 낭비 : 불필요한 자산이 로드되오 메모리가 낭비될 수 있다.
  2. 긴 로딩 시간: 여러 자산을 하드 참조하면 게임 시작 시 로딩 시간이 길어 질 수 있다.

  • Size Map을 통해서 하드 참조 했을때의 사용 메모리 확인 가능
  • SizeMap을 보면 TestActor를 호출하는데 BP_ThirdPersonCharacter도 같이 호출되어 불필요한 메모리 낭비가 일어나고 있다.

왜 하드 참조가 발생할까?

블루프린트에서 한 블루프린트가 다른 블루프린트의 함수나 변수에 접근하려면, 해당 블루프린트가 먼저 로드되어야 합니다. 이를 피하기 위해 일부 개발자들은 블루프린트에서 캐스팅을 절대 사용하지 말고 항상 인터페이스(interface)를 사용하라고 주장한다.

하지만 사실, 캐스팅 자체는 성능적으로 큰 부담이 되지 않습니다. 문제는 비용이 높은 블루프린트에 캐스팅할 때 발생합니다. 캐스팅 대상이 Native C++ 클래스나 저비용 부모 클래스라면 하드 참조 문제를 피할 수 있다.

Soft Reference란?

객체의 경로만 참조하며, 객체 자체는 필요할 때 수동으로 로드되는 방식

장점

  1. 자산을 필요할 때만 로드하여 메모리 낭비를 줄임

단점

  1. 코드가 복잡해지고 로드 타이밍 관리가 어려움
Hard ReferenceSoft Reference
특징직접 참조, 즉시 로드경로 참조, 수동 로드
장점코드 단순, 로드 관리 불필요메모리 절약, 필요할 때만 로드
단점메모리 낭비, 긴 로딩 시간코드 복잡, 로드 타이밍 문제
사용핵심 자산(Key Asset)비핵심 자산

0개의 댓글