통계 명령

게임 통계를 표시하는 데 특화된 콘솔 명령입니다.

추가 참고
필요한 사전지식

이 페이지의 콘텐츠를 이해하고 활용하기 위해 다음 주제를 숙지해 주세요.

개발자는 언리얼 엔진(UE) 프로젝트를 프로파일링하기 위해 게임을 에디터에서 플레이(PIE) 모드로 실행하는 도중 다음과 같은 통계 명령(stat commands) 을 콘솔에 입력할 수 있습니다.

원본 이미지를 보려면 클릭하세요.

에디터의 통계(Stat) 메뉴를 찾으려면 뷰포트 세팅(Viewport Setting) 버튼 옆의 드롭다운 화살표를 선택합니다.

원본 이미지를 보려면 클릭하세요.

LOG 명령과 함께 에디터를 실행하면 개발자는 통계 덤프(dump) 에서 유용한 정보를 기록할 수 있습니다. 그렇게 하려면 에디터(게임 프로젝트)를 LOG 명령과 함께 실행하여 로그 파일 생성을 활성화합니다(예: UnrealEditor.exe -silent LOG=MyLog.txt ).

통계 명령 테이블

stat 뒤에 한 칸을 띄우고 다음 명령을 입력하여 명령을 활성화합니다.

명령 이름

명령 설명

AI

퍼셉션 시스템 및 전반적인 AI 퍼포먼스 정보를 표시합니다.

AI_EQS

인바이런먼트 쿼리 시스템(Environment Query System, EQS)의 퍼포먼스, 디버그, 메모리 통계를 표시합니다.

AIBehaviorTree

비헤이비어 트리의 퍼포먼스 및 메모리 통계를 표시합니다.

AICrowd

크라우드 매니저의 퍼포먼스 및 스텝 정보를 표시합니다.

Anim

스킨을 입힌 메시가 틱당 계산되는 데 걸리는 시간을 표시합니다.

AsyncLoad AsyncLoadGameThread

비동기 로딩 퍼포먼스 통계를 표시합니다.

Audio / AudioThreadCommands

웨이브 인스턴스나 버퍼 퍼포먼스 등의 오디오 통계입니다.

Canvas

타일, 윤곽선, 텍스트 등 캔버스 유저 인터페이스 항목의 퍼포먼스 정보를 표시하는 캔버스 통계입니다.

Collision / CollisionTags

콜리전의 퍼포먼스, 디버그, 메모리 정보를 표시합니다.

CommandListMarkers

명령 목록과 퍼포먼스 정보를 함께 표시합니다.

Component

컴포넌트 목록과 퍼포먼스 정보를 함께 표시합니다.

Compression

압축 통계를 표시합니다.

CPULoad

CPU 활용을 표시합니다.

CPUStalls

CPU 스톨 관련 정보를 표시합니다.

D3D11RHI

Direct3D 11 RHI 통계를 표시합니다.

DDC

파생 데이터 캐시(Derived Data Cache, DDC) 통계를 표시합니다.

DumpHitches

t.HitchFrameTimeThreshold 를 바탕으로 '히치'가 탐지될 때마다 로그에 기록됩니다.

Dumpticks

틱 함수 관련 정보를 덤프합니다.

Engine

프레임 시간, 렌더링되는 트라이앵글 수 카운터 등 일반적인 렌더링 통계를 표시합니다.

FPS

초당 프레임 수(FPS) 카운터를 표시합니다.

Game

다양한 게임플레이 틱이 얼마나 걸리는지 피드백을 제공합니다.

GameplayTags

게임플레이 태그 정보를 표시합니다.

GC

가비지 컬렉션 통계를 표시합니다.

GeometryCache

지오메트리 캐시 시스템의 퍼포먼스 및 메모리 통계를 표시합니다.

GPU

프레임 GPU 통계를 표시합니다.

GPUParticles

GPU 파티클의 퍼포먼스 정보를 표시합니다.

Help

모든 통계 명령을 목록으로 표시합니다.

Hitches

t.HitchFrameTimeThreshold 를 설정하여 히치로 간주될 시간(단위: 초)을 정의합니다. 모든 히치를 로그/Visual Studio 디버그로 덤프합니다. 예: [0327.87] LogEngine:Warning: HITCH @ 00m:01s:643ms,1643,72,2.

IMEWindows

Windows Text Input Method System의 정보를 표시합니다.

InitViews

비저빌리티 컬링이 얼마나 걸렸는지, 얼마나 효율적이었는지에 관한 정보를 표시합니다. 표시되는 섹션 수는 렌더링 스레드 퍼포먼스와 관련하여 단연 중요한 통계입니다. 이는 STAT INITVIEWS 아래 표시되는 스태틱 메시 엘리먼트에 의해 좌우됩니다. 그러나 표시되는 다이내믹 프리미티브 또한 영향을 미칩니다.

KismetCompiler

키즈멧 컴파일러 정보를 표시합니다.

KismetReinstancer

키즈멧 리인스턴서 정보를 표시합니다.

Levels

레벨 스트리밍 정보를 표시합니다.

LightRendering

라이팅 및 새도 렌더링에 얼마나 걸리는지 피드백을 제공합니다.

LinkerCount

링커 카운터를 표시합니다.

LinkerLoad

링커 로드 정보를 표시합니다.

List 

통계 또는 저장된 세트 그룹이나 지정된 그룹 내의 통계를 사용과 함께 표시합니다. <Groups/Sets/Group><br>

LLM

로우 레벨 메모리 트래커(Low Level Memory Tracker, LLM) 카운터를 표시합니다.

LLMFull

전체 LLM 카운터 그룹을 표시합니다.

LLMOverhead

LLM 오버헤드 카운터를 표시합니다.

LLMPlatform

LLM 플랫폼 카운터를 표시합니다.

LoadTime / LoadTimeVerbose

로드 시간 퍼포먼스 정보를 표시합니다.

MapBuildData

맵 빌드 데이터를 표시합니다.

MathVerbose

수학 연산의 퍼포먼스 정보를 표시합니다.

Memory

언리얼 엔진의 여러 서브시스템에서 사용되는 메모리 사용량 통계를 표시합니다.

MemoryAllocator

메모리 할당 정보를 표시합니다.

MemoryPlatform

메모리 플랫폼 정보를 표시합니다.

MemoryStaticMesh

스태틱 메시의 메모리 통계를 표시합니다.

NamedEvents

외부 프로파일러를 위해 명명된 이벤트를 활성화합니다.

Navigation

내비게이션 시스템의 퍼포먼스 및 메모리 정보를 표시합니다.

NET

네트워크 시스템 통계를 표시합니다.

Object / ObjectVerbose

오브젝트 메모리 및 퍼포먼스 정보를 표시합니다.

Online

온라인 시스템 카운터를 표시합니다.

Pakfile

Pakfile 시스템 통계를 표시합니다.

ParallelCommandListMarkers

병렬 명령 목록을 퍼포먼스 정보와 함께 표시합니다.

Particles

파티클 시스템 퍼포먼스 정보를 표시합니다.

Physics

피직스 퍼포먼스 통계를 표시합니다.

PhysXTasks

PhysX 태스크 정보를 표시합니다.

PhysXVehicleManager

PhysX 비히클 매니저 통계를 표시합니다.

PlayerController

플레이어 컨트롤러 퍼포먼스 정보를 표시합니다.

Quick

전체 퍼포먼스 데이터 그룹을 빠르게 표시합니다.

RenderTargetPool

렌더 타깃 풀의 메모리 및 퍼포먼스 통계를 표시합니다.

RenderThreadCommands

렌더 스레드 명령을 퍼포먼스 정보와 함께 목록으로 표시합니다.

RHI

RHI 메모리 및 퍼포먼스 통계를 표시합니다.

RHICMDLIST

RHI 명령 목록을 퍼포먼스 통계와 함께 표시합니다.

SceneMemory

씬 메모리 카운터를 표시합니다.

SceneRendering

일반 렌더링 통계를 표시합니다. 렌더링 프로세스에서 퍼포먼스가 느린 일반 영역을 찾는 용도로 쓰기에 좋습니다.

SceneUpdate

월드 업데이트 관련 정보를 표시합니다. 씬에서 라이트를 추가, 업데이트, 제거에 걸리는 시간과 프리미티브를 추가 및 제거하는 데 걸리는 시간을 포함합니다.

Script

스크립트 통계를 표시합니다.

ShaderCompiling

셰이더 컴파일링 정보를 표시합니다.

Shaders

셰이더 압축 통계를 표시합니다.

ShadowRendering

섀도 계산이 얼마나 걸리는지 표시합니다. 실제 섀도 렌더링 시간은 stat LightRendering 명령에서 따로 다룹니다.

Slate / SlateVerbose

슬레이트 퍼포먼스 통계를 표시합니다.

SlateMemory

슬레이트 메모리 카운터를 표시합니다.

SoundCues

활성화된 SoundCues를 표시합니다.

SoundMixes

활성화된 SoundMixes를 표시합니다.

Sounds

<?> <sort=distance|class|name|waves|default> <-debug> <off> 
활성화된 SoundCues 및 SoundWaves를 표시합니다.

SoundWaves

활성화된 SoundWaves를 표시합니다.

SplitScreen

분할 화면 정보를 표시합니다.

StartFile

통계 캡처를 시작하고 프로파일링 디렉터리에 새 파일을 만듭니다.

이 작업을 중지하려면 stat StopFile 명령을 사용합니다.

StatSystem

통계 시스템의 퍼포먼스 및 메모리 정보를 표시합니다.

StopFile

stat StartFile 명령으로 시작된 통계 캡처를 마무리하고 Profiling 디렉터리에 생성된 파일을 닫습니다.

Streaming

스트리밍 에셋의 기본 통계를 표시합니다. 메모리 스트리밍 텍스처가 사용량, 씬에 있는 스트리밍 텍스처의 양 등이 표시됩니다.

StreamingDetails

스트리밍 관련 추가 통계입니다. 예컨대 일반 텍스처 스트리밍을 보다 구체적인 그룹(라이트맵, 스태틱 텍스처, 다이내믹 텍스처)으로 분할합니다.

StreamingOverview

스트리밍 에셋 관련 통계 개요를 표시합니다.

TargetPlatform

타깃 플랫폼 정보를 표시합니다.

TaskGraphTasks

TaskGraph 태스크의 퍼포먼스 데이터를 표시합니다.

Text

텍스트의 퍼포먼스 통계를 표시합니다.

TextureGroup

텍스처 그룹 메모리 카운터를 표시합니다.

Threading

스레딩 정보를 표시합니다.

ThreadPoolAsyncTasks

ThreadPool 비동기 태스크 카운터를 표시합니다.

Threads

스레드 정보를 표시합니다.

Tickables

틱 가능 항목의 퍼포먼스 통계를 표시합니다.

TickGroups

틱 그룹의 퍼포먼스 통계를 표시합니다.

UI

UI 퍼포먼스 정보를 표시합니다.

Unit

전반적인 프레임 시간과 게임 스레드, 렌더링 스레드, GPU 시간입니다.

시작하기에 좋은 통계 명령입니다. 개발자가 프로파일링 작업에 집중하도록 돕기 때문입니다.

UnitGraph

통계 유닛 데이터가 있는 그래프를 보려면 stat Raw 를 사용하여 필터링되지 않은 데이터를 표시합니다.

UObjectHash

해시된 UObject 인포메이션을 표시합니다.

UObjects

게임 내 UObject의 퍼포먼스 통계를 표시합니다.

명령 선택

레벨

stat levels 명령은 퍼시스턴트 레벨 아래에 그룹화된 레벨 스트리밍 정보를 표시합니다.

사용 사례

이 명령은 현재 활성 레벨 목록과 그 표시 여부 및 사전 로딩, 로딩, 언로딩 여부를 보려는 개발자에게 유용합니다. 또한 이 명령은 요청 로드부터 완료 로드까지 몇 초가 걸렸는지 표시합니다.

사용

스트리밍 레벨 정보를 표시하려면 stat levelsPIE 콘솔(PIE Console) 에 입력합니다. 레벨이 어떤 스테이트에 있는지 판정하려면 아래의 레벨 컬러 코드 테이블을 참조합니다.

레벨 컬러 코드

컬러 코드

설명

녹색

레벨이 로드되어 있고 표시됩니다.

빨간색

레벨이 언로드되어 있습니다.

주황색

레벨이 표시되는 프로세스를 거치고 있습니다.

노란색

레벨이 로드되었으나 표시되지 않습니다.

파란색

레벨이 언로드되었으나 여전히 메모리에 남아 있습니다. 가비지 컬렉션이 일어나면 클린업될 것입니다.

보라색

레벨이 사전 로드 중입니다.

StartFile

원본 이미지를 보려면 클릭하세요.

stat startfile 명령은 통계 캡처를 시작하고 Profiling 디렉터리에 새 파일을 생성합니다. 일반적으로 엔진은 통계 캡처를 <프로젝트_디렉터리>\Saved\Profiling\UnrealStats 폴더에 저장합니다.

사용 사례

세션 프론트엔드 프로파일러(Session Frontend Profiler) 로 프로젝트 퍼포먼스를 프로파일링하려면 통계 샘플을 캡처하고 *.uestats 파일에 로깅합니다.

사용

통계를 캡처하고 *.uestats 파일에 로그하려면 stat startfile 명령을 PIE 콘솔 에 입력합니다.

StartFile 이 대형 uestats 파일로 디스크를 가득 채우지 않게 하려면 stat StopFile 을 실행합니다. 또한 PIE 모드가 닫혀도 StartFile 은 백그라운드에서 계속 실행되며, 그 결과 로그 파일의 용량이 과도하게 커질 수 있습니다. 프로젝트 퍼포먼스 로깅을 중단하려면 StopFile 명령을 사용해야 합니다.

통계 로드하기

통계를 세션 프론트엔드 프로파일러 로 로드하려면 다음 단계를 따릅니다.

  1. 언리얼 에디터 메뉴 바(Unreal Editor Menu Bar) 에서 툴(Tools) >세션 프론트엔드(Session Frontend) 를 선택합니다.

  2. 세션 프론트엔드 가 열린 상태에서 프로파일러(Profiler) 탭을 선택합니다.

  3. 프로파일링할 파일을 열려면 로드(Load) 를 선택합니다. 파일 탐색기(File Explorer) 창이 표시되며, 이 창에서 프로파일링할 uestats 파일을 선택하여 열 수 있습니다.

  4. uestats 파일을 선택한 다음 열기(Open) 를 눌러 파일을 로드합니다.

최종 결과

세션 프론트엔드 가 파일을 로드한 뒤 캡처 데이터를 프로파일러 에서 보면서 추가 분석을 수행할 수 있습니다. 세션 프론트엔드 에서 프로파일 캡처를 검토하는 방법에 대한 상세 정보는 프로파일러 툴 레퍼런스(Profiler Tool Reference)를 참조하세요.

StopFile

원본 이미지를 보려면 클릭하세요.

stat stopfile 명령은 StartFile 명령으로 시작된 통계 캡처를 중지합니다. 또한 StopFile 명령은 Profiling 디렉터리에 생성된 파일을 닫습니다.

사용 사례

StartFile이 대형 uestats 파일로 디스크를 가득 채우지 않게 하려면 stat StopFile 을 실행합니다. 또한 PIE 모드가 닫혀도 StartFile은 백그라운드에서 계속 실행되며, 그 결과 로그 파일의 용량이 과도하게 커질 수 있습니다. 프로젝트 퍼포먼스 로깅을 중단하려면 StopFile 명령을 사용해야 합니다.

사용

통계 캡처 및 로그를 중지하려면 stat stopfile 명령을 PIE 콘솔 에 입력합니다.

Unit

사용 사례

일반적으로 개발자는 게임 스레드, 드로 (렌더링) 스레드 또는 GPU 에 병목 구간(퍼포먼스에 부정적 영향)이 있는지 판정하고자 합니다. 

원본 이미지를 보려면 클릭하세요.

stat unit 명령은 프로젝트의 프레임, 게임, 드로, GPU, RHIT, DynRes 스레드의 퍼포먼스 정보를 표시합니다.

통계

이름

설명

프레임

프레임 시간은 게임의 프레임 하나를 생성하는 데 걸린 총 시간입니다. 게임 스레드와 드로 스레드는 둘 다 한 프레임이 끝나기 전에 동기화되므로, 프레임 시간은 다음 스레드 중 하나의 시간과 가까운 경우가 많습니다.

게임

프레임 시간이 게임 시간에 가까운 경우 게임 스레드 때문에 게임 퍼포먼스에 병목 구간(부정적인 영향)이 발생하는 것일 수 있습니다.

드로

프레임 시간이 드로 시간에 가까운 경우 렌더링 스레드 때문에 게임 퍼포먼스에 병목 구간이 발생하는 것일 수 있습니다.

GPU

GPU 시간은 비디오 카드가 씬을 렌더링할 때 얼마나 오래 걸리는지 측정합니다. GPU 시간은 프레임과 동기화되므로 프레임 시간과 유사할 확률이 높습니다.

RHIT

RHI 스레드 시간은 보통 프레임과 동기화되므로 프레임 시간과 유사할 확률이 높습니다.

DynRes

지원되고 활성화된 경우 동적 해상도는 1차 스크린 퍼센티지 X 2차 스크린 퍼센티지를 표시합니다.

사용

프로젝트의 병목 구간을 판정하려면 디버그 빌드가 아닌 빌드에서 게임을 실행하고 stat unit 명령을 PIE 콘솔 에 입력합니다.

언리얼 엔진 문서의 미래를 함께 만들어주세요! 더 나은 서비스를 제공할 수 있도록 문서 사용에 대한 피드백을 주세요.
설문조사에 참여해 주세요
취소