Unreal Insights 완전 가이드
UE5의 핵심 프로파일링 도구를 마스터하여 성능 병목을 정확히 식별합니다
Unreal Insights란?
UE5의 통합 프로파일링 솔루션
Unreal Insights는 UE5의 핵심 프로파일링 도구로, 고속 데이터 레이트로 이벤트를 캡처하고 분석합니다. CPU, GPU, 메모리, 네트워크를 하나의 도구에서 통합 분석할 수 있습니다.
Unreal Insights는 기존의 여러 프로파일링 도구를 통합한 UE5의 중앙 프로파일링 솔루션입니다. 프레임 시간, 메모리 할당, 에셋 로딩까지 한 곳에서 분석 가능합니다.
⏱️ Timing Insights
프레임별 CPU/GPU 시간 분석
🧠 Memory Insights
메모리 할당/해제, LLM 태그
📦 Asset Loading
에셋 로딩 시간 프로파일링
🌐 Network
네트워크 트래픽 분석
트레이스 채널 조합
상황별 최적의 트레이스 설정
트레이스 채널은 캡처할 데이터 종류를 결정합니다. 오버헤드와 상세도 사이의 균형을 고려하여 선택해야 합니다.
높은 오버헤드
개발 초기용
최소 오버헤드
일반 분석용
메모리 특화
LLM 분석
네트워크 특화
멀티플레이어
권장 트레이스 조합
# 모든 정보를 캡처 (개발 초기 분석용)
-trace=log,counters,cpu,frame,bookmark,file,loadtime,gpu,rhicommands,rendercommands,object
# 일반적인 성능 분석에 적합
-trace=counters,cpu,frame,bookmark,gpu
# 메모리 할당 및 LLM 분석
-trace=default,memory,metadata,assetmetadata -llm
# 네트워크 트래픽 분석
-NetTrace=1 -trace=net -tracehost=localhost
트레이스 채널이 많을수록 오버헤드가 증가하여 측정 결과가 왜곡될 수 있습니다. 항상 분석 목적에 맞는 최소한의 채널만 활성화하세요.
실행 방법
트레이스 시작부터 분석까지
에디터에서 시작
# 에디터 실행 시 트레이스 시작
UnrealEditor.exe MyProject.uproject -trace=default,memory
콘솔 명령으로 제어
# 트레이스 시작
Trace.Start default,cpu,gpu,frame
# 특정 파일로 저장하며 시작
Trace.Start default,cpu,gpu -file=MyTrace
# 트레이스 중지
Trace.Stop
Unreal Insights 앱 실행
# Windows
Engine/Binaries/Win64/UnrealInsights.exe
# 파일 위치
[Project]/Saved/Profiling/
Unreal Insights는 게임 실행 중 실시간으로 데이터를 수신할 수 있습니다. -tracehost=localhost 옵션을 사용하면 라이브 분석이 가능합니다.
Timing Insights 활용
프레임 시간 분석의 핵심
Timing Insights는 프레임별 CPU/GPU 시간을 시각화하여 병목 지점을 찾는 데 가장 많이 사용됩니다.
주요 기능
Frame Overview
전체 프레임 시간 분포를 한눈에 파악. 스파이크 구간 빠르게 식별 가능
Track View
Game Thread, Render Thread, GPU를 개별 트랙으로 확인
Timer Aggregation
함수별 총 실행 시간, 호출 횟수 집계
Call Tree
콜스택 기반 계층적 분석으로 병목 원인 추적
게임 로직 최적화 필요
렌더링 최적화 필요
# 60 FPS = 16.66ms 프레임 버짓
Game Thread: ~5-6ms # 게임 로직, 블루프린트, 물리
Draw Thread: ~3-4ms # 렌더 커맨드 생성
GPU: ~8-10ms # 실제 렌더링
# 가장 높은 값이 병목!
Game > Draw > GPU → CPU Bound (Game Thread)
GPU > Game > Draw → GPU Bound
핵심 요약
- Unreal Insights는 UE5의 중앙 프로파일링 도구로 CPU/GPU/메모리를 통합 분석
- 트레이스 채널은 분석 목적에 맞게 최소한으로 설정하여 오버헤드 최소화
- 권장 조합:
-trace=counters,cpu,frame,bookmark,gpu - 60 FPS = 16.66ms 프레임 버짓, Game/Draw/GPU 중 가장 높은 값이 병목
- Timing Insights의 Frame Overview와 Track View로 스파이크 구간 빠르게 식별
다음 강의에서는 stat 명령어 체계와 CPU Profiler를 사용한 Game Thread 병목 분석을 자세히 다룹니다.
도전 과제
배운 내용을 직접 실습해보세요
프로젝트에서 -trace=counters,cpu,frame,bookmark,gpu 옵션으로 에디터를 실행하세요. 30초간 게임플레이를 녹화한 후 UnrealInsights.exe로 .utrace 파일을 열어 Frame Overview에서 스파이크 구간을 3개 이상 식별합니다.
동일한 씬에서 '최소 트레이스(cpu,frame)'와 '최대 트레이스(all channels)' 두 가지로 프로파일링하세요. 각 트레이스의 오버헤드를 비교하고, 프레임 시간 왜곡 정도를 측정합니다.
TRACE_CPUPROFILER_EVENT_SCOPE 매크로를 사용하여 게임 시스템별 커스텀 트레이스 이벤트를 5개 이상 추가하세요. Timing Insights에서 커스텀 이벤트가 표시되는지 확인하고 Game Thread 병목 원인을 분석합니다.