Profile In Code
언리얼 개발 과정중 소스코드 단위로 프로일링이 필요한 상황이 올 수 있다.
이를 대비하여 언리얼 엔진에서 지원해주는 기능이 있다.
프로파일링을 위한 그룹 선언
먼저 프로파일링 그룹을 선언한다.
DECLARE_STATS_GROUP(TEXT("Sample"), STATGROUP_Sample, STATCAT_Advanced);
프로파일링 영역 설정을 위한 개체 선언
코드 영역에 적용하기 전에 영역 개체를 정의한다.
DECLARE_CYCLE_STAT(TEXT("Agent [Tick]"), STAT_AgentTick, STATGROUP_Sample);
프로파일링 대상 영역에 적용
이제 프로파일링 대상 영역에 적용한다.
void ACharacterAgent::Tick(float DeltaTime)
{
// 현재 포함된 블록에 대한 프로파일링을 시작한다.
// Actor가 여러번 생성된다면 모든 actor들의 Tick함수 내의 성능을 종합하여 프로파일링 한다.
SCOPE_CYCLE_COUNTER(STAT_AgentTick)
;
Super::Tick(DeltaTime);
UpdateAgent(DeltaTime);
}
프로파일링 과정 확인
언리얼 게임 내에서 프로파일링 과정을 확인할 필요가 있을 것이다.
먼저 ` 키를 눌러 커맨드창을 연다.
그리고 다음 커맨드를 입력한다.
stat Sample
다음과 같이 표시된다.
주의할 점은 프로파일링 과정을 화면에 표시해주는 것 자체가 또 성능을 잡아먹기 때문에,
다음 커맨드를 통해 프로파일링 렌더링 과정으로 얼마나 성능이 변하는지 확인할 필요가 있다.
stat Engine
Profile Command
Unreal Editor에서 다음 커맨드를 통해 시간이 오래걸리는 프레임만 선별적으로 추적할 수 있다.
stat dumphitches
'게임 엔진 > Unreal' 카테고리의 다른 글
[Unreal] Animation Notify를 이용한 충돌처리 (AnimNotify, Collision) (0) | 2020.06.14 |
---|---|
[Unreal] Physics Body의 기하 정보를 이용한 충돌처리 (0) | 2020.06.13 |
[Unreal] [Example] 콘솔 커맨드 제작 방법 (Console Command) (0) | 2020.06.12 |
[Unreal] 디버깅용 드로워 이용 방법 (Draw Debug) (0) | 2020.06.11 |
[Unreal] [Example] 데이터 이용 방법 (DataAsset) (0) | 2020.05.30 |