PART 1 · 강의 1/4

Unreal Insights 완전 가이드

UE5의 핵심 프로파일링 도구를 마스터하여 성능 병목을 정확히 식별합니다

01

Unreal Insights란?

UE5의 통합 프로파일링 솔루션

Unreal Insights는 UE5의 핵심 프로파일링 도구로, 고속 데이터 레이트로 이벤트를 캡처하고 분석합니다. CPU, GPU, 메모리, 네트워크를 하나의 도구에서 통합 분석할 수 있습니다.

🔍 Unreal Insights 아키텍처
🎮 Game
트레이스 데이터 생성
📡 Trace Recorder
포트 1981 수신
💾 Trace Store
.utrace 저장
📊 Analysis
병목 지점 식별
핵심 포인트

Unreal Insights는 기존의 여러 프로파일링 도구를 통합한 UE5의 중앙 프로파일링 솔루션입니다. 프레임 시간, 메모리 할당, 에셋 로딩까지 한 곳에서 분석 가능합니다.

📈 통합 분석 영역

⏱️ Timing Insights

프레임별 CPU/GPU 시간 분석

🧠 Memory Insights

메모리 할당/해제, LLM 태그

📦 Asset Loading

에셋 로딩 시간 프로파일링

🌐 Network

네트워크 트래픽 분석

02

트레이스 채널 조합

상황별 최적의 트레이스 설정

트레이스 채널은 캡처할 데이터 종류를 결정합니다. 오버헤드와 상세도 사이의 균형을 고려하여 선택해야 합니다.

⚖️ 트레이스 조합별 특성
최대 상세
🔴

높은 오버헤드
개발 초기용

권장 설정
🟢

최소 오버헤드
일반 분석용

메모리
🟣

메모리 특화
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
주의사항

트레이스 채널이 많을수록 오버헤드가 증가하여 측정 결과가 왜곡될 수 있습니다. 항상 분석 목적에 맞는 최소한의 채널만 활성화하세요.

03

실행 방법

트레이스 시작부터 분석까지

🚀 프로파일링 워크플로우
1
트레이스 시작
명령줄 또는 콘솔
2
문제 재현
성능 이슈 발생 유도
3
트레이스 중지
.utrace 파일 생성
4
분석
Insights 앱 실행

에디터에서 시작

명령줄 인자로 트레이스 시작
코드 보기
# 에디터 실행 시 트레이스 시작 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 옵션을 사용하면 라이브 분석이 가능합니다.

04

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
CPU Bound
Game > Draw > GPU

게임 로직 최적화 필요

GPU Bound
GPU > Game > Draw

렌더링 최적화 필요

프레임 버짓 상세 수치
코드 보기
# 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
SUMMARY

핵심 요약

  • 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 병목 분석을 자세히 다룹니다.

PRACTICE

도전 과제

배운 내용을 직접 실습해보세요

실습 1: Unreal Insights 트레이스 캡처

프로젝트에서 -trace=counters,cpu,frame,bookmark,gpu 옵션으로 에디터를 실행하세요. 30초간 게임플레이를 녹화한 후 UnrealInsights.exe로 .utrace 파일을 열어 Frame Overview에서 스파이크 구간을 3개 이상 식별합니다.

실습 2: 트레이스 채널 비교

동일한 씬에서 '최소 트레이스(cpu,frame)'와 '최대 트레이스(all channels)' 두 가지로 프로파일링하세요. 각 트레이스의 오버헤드를 비교하고, 프레임 시간 왜곡 정도를 측정합니다.

심화 과제

TRACE_CPUPROFILER_EVENT_SCOPE 매크로를 사용하여 게임 시스템별 커스텀 트레이스 이벤트를 5개 이상 추가하세요. Timing Insights에서 커스텀 이벤트가 표시되는지 확인하고 Game Thread 병목 원인을 분석합니다.