언리얼 인사이트(Unreal Insights) 는 높은 데이터 속도로 프로젝트에서 이벤트를 캡처할 수 있게 해주는 원격 측정 캡처 및 분석 툴세트입니다. 해당 툴세트는 최적화가 필요한 영역을 식별합니다. 언리얼 인사이트의 주요 컴포넌트는 다음과 같습니다.
-
트레이스(Trace) 이벤트 - 이벤트를 정의하고 이벤트가 포함할 필드를 지정하는
EventName
및FieldName
이 포함되어 있습니다. -
언리얼 트레이스 서버(Unreal Trace Server) - 애플리케이션의 트레이스를 기록하고 저장합니다.
-
언리얼 인사이트 - 데이터를 분석하고 시각화합니다.

언리얼 인사이트 프레임워크의 주요 컴포넌트 시각화입니다.
트레이스 세션(Trace Sessions)은 직관적이며 여러 엔진 릴리즈 버전과 호환됩니다. 트레이스는 .utrace
파일에 저장됩니다. 생성된 컴패니언 데이터는 트레이스 파일과 같은 디렉터리 내에 있는 .ucache
파일에 저장됩니다.
언리얼 인사이트 설정하기
에디터에서 실행
언리얼 에디터 에서 언리얼 인사이트를 실행하려면 에디터 하단 툴바에 있는 트레이스/인사이트 상태 바 위젯 으로 이동합니다.

프로젝트 데이터를 프로파일링하기 위해 트레이스를 실행할 때, 언리얼 엔진 빌드와 운영 체제에 따라 여러 가지 워크플로 옵션을 선택할 수 있습니다. 이러한 워크플로 옵션에 대한 자세한 내용은 아래의 페이지를 참조하세요.
-트레이스
언리얼 인사이트의 사전 빌드 실행
언리얼 엔진의 바이너리 버전을 설치하는 경우, 다음 디렉터리에 언리얼 인사이트의 컴파일된 버전이 있을 것입니다.
Engine\Binaries[플랫폼]\UnrealInsights[.exe]
소스에서 빌드
엔진의 바이너리 버전이 설치되어 있지 않거나 소스에서 언리얼 인사이트를 컴파일하려면 다음 옵션을 사용할 수 있습니다.
-
통합 개발 환경(Integrated Development Enviroment, IDE)을 사용합니다. Programs 폴더에 있는 UnrealInsights 타깃을 찾습니다.
-
명령 프롬프트에서 시작합니다. 엔진 설치 폴더에서 언리얼 빌드 툴을 사용하여 언리얼 인사이트를 빌드합니다.
Windows:
Engine/Build/BatchFiles/RunUBT.bat UnrealInsights Win64 Development
Linux 또는 Mac:
./Engine/Build/BatchFiles/RunUBT.sh UnrealInsights [Linux|Mac] Development
트레이스
트레이스 는 실행 프로세스에서 시스템 이벤트를 트레이스하는 구조화된 로깅 프레임워크입니다. 언리얼 트레이스 서버(Unreal Trace Server) 는 백그라운드에서 단일 서버 인스턴스로 실행되며 여러 프로젝트나 브랜치 간에 공유할 수 있습니다. 퍼포먼스에 최소한의 영향만을 끼치는 최적화된 프로그램으로, 유저 인터페이스는 포함되어 있지 않습니다.
트레이스 서버는 Engine/Binaries/Win64
디렉터리 폴더에 있는 별도의 서버 프로세스 실행파일인 UnrealTraceServer.exe
에 의해 자동 실행됩니다.
트레이스 서버에는 다음과 같은 두 컴포넌트가 있습니다.
-
트레이스 레코더(Trace Recorder) 는 수신되는 트레이스 연결을 위해 1981 포트를 리슨하고 라이브 트레이스 스트림을 기록합니다.
-
트레이스 스토어(Trace Store) 는 기록된 트레이스를 폴더에 파일로 저장합니다. 트레이스 스토어는 이 폴더에서 변경사항을 감시하고 사용할 수 있는 트레이스 목록을 언리얼 인사이트 UI에 노출합니다.
트레이스 폴더 경로의 예는 다음과 같습니다.
C:/Users/<user>/AppData/Local/UnrealEngine/Common/UnrealTrace/Store/001/
추가 문서는 다음 페이지를 참조하세요.
-트레이스
언리얼 인사이트 세션 브라우저
언리얼 인사이트 세션 브라우저(Unreal Insights Session Browser) 는 트레이스 데이터를 관찰할 수 있는 인터페이스입니다. 브라우저를 실행하려면 하단 툴바에서 트레이스(Trace) > 인사이트(Insights) > 언리얼 인사이트 (세션 브라우저 )(Unreal Insights(Session Browser)) 를 클릭합니다.
트레이스 스토어
트레이스 스토어 는 저장된 모든 트레이스 세션을 관찰하고 관리할 수 있는 인터페이스입니다. 기록된 트레이스는 폴더에 파일로 저장되며, 언리얼 인사이트는 이 폴더에서 데이터 변경사항을 감지하면 언리얼 인사이트 UI에 사용할 수 있는 트레이스 목록을 노출합니다.

숫자 인덱스 | 카테고리 | 설명 |
---|---|---|
(1) | 트레이스 스토어 패널 | 분석을 위해 트레이스 파일을 열고 관리합니다. |
(2) | 트레이스 스토어 디렉터리(Trace Story Directory) | 트레이스 세션에 대한 디렉터리 경로를 표시하고 엽니다. |
(3) | 트레이스 세션 | 분석을 위해 로드할 수 있는 미리 기록된 세션 목록입니다. 이러한 세션은 트레이스 스토어 디렉터리의 .utrace 파일에 해당합니다. 트레이스 세션을 우클릭하여 이름변경을 하거나 삭제할 수 있습니다. 아니면 바로가기 키를 사용해도 됩니다. 트레이스 세션을 클릭하고 F2 를 누르면 이름변경을 할 수 있으며 Del 을 누르면 삭제됩니다. |
(4) | 세션 필터 | 트레이스 파일을 플랫폼(Platform), 앱 이름(App Name), 환경설정(Config), 타깃(Target) 및 브랜치(Branch) 카테고리로 정렬합니다. |
(5) | 검색창 | 명령줄이나 이름으로 검색을 필터링합니다. |
(6) | 연결(Connection) 탭 | 원격 트레이스 서버와 연결을 설정합니다. |
연결 탭
연결 탭에서는 실행 중인 게임이나 에디터를 트레이스 서버에 연결할 수 있습니다. 연결 탭에는 연결 세팅을 변경할 수 있는 여러 가지 옵션이 있습니다.

숫자 인덱스 | 카테고리 | 설명 |
---|---|---|
(6) | 연결 탭 | 원격 실행 중인 게임이나 에디터와 트레이스 서버 간의 연결을 관리합니다. |
(7) | 트레이스 레코더 IP 주소(Trace Recorder IP address) | 트레이스 서버의 IP 주소입니다. |
(8) | 실행 중인 인스턴스 IP 주소(Running Instance IP address) | 데이터 트레이싱을 시작하기 위해 트레이스 서버와 연결할 프로젝트(실행 중인 인스턴스)의 IP 주소입니다. |
(9) | 초기 채널(Initial channels) | 트레이스 연결이 데이터 분석을 시작할 때 활성화할 트레이스 채널의 목록을 지정하는 필드입니다. |
분석을 위한 트레이스 로드
분석하기 위해 트레이스를 로드하는 방법은 여러 가지입니다. 다음과 같은 방법을 사용할 수 있습니다.
-
언리얼 인사이트 브라우저에서 원하는 트레이스 세션을 더블클릭합니다.
-
트레이스 세션을 클릭하고 트레이스 열기(Open Trace) 를 클릭합니다.
-
다른 위치에서 트레이스 열기 드롭다운 화살표를 사용하여
.utrace
파일을 검색합니다. -
해당 트레이스 파일을 즉시 분석하기 시작하려면 .utrace 파일을 탐색기에서 언리얼 인사이트 창으로 드래그 앤 드롭합니다.

라이브 연결
라이브 트레이스 세션이 툴에 연결되면 해당 세션이 목록에도 표시됩니다. 라이브 세션은 상태 열에 라이브(LIVE) 라는 단어를 표시하고 분석 도중에 실시간으로 업데이트됩니다. 그 외에는 사전 녹화된 세션과 동일합니다.

툴은 동시에 여러 개의 세션에 연결할 수 있고, 데이터가 스트림으로 오는 동안 해당 세션의 데이터를 모두 자동으로 기록합니다. 이러한 세션은 사전 녹화된 세션과 같은 방식으로 리스트에서 로드하여 실시간으로 분석할 수 있습니다.
타이밍 인사이트 창
타이밍 인사이트(Timing Insights) 창은 퍼포먼스 데이터를 수집합니다. 여기에는 CPU 및 GPU 트랙 데이터가 표시됩니다. 이러한 트랙에는 다양한 프로세싱 작업과 프로젝트 실행에 걸리는 시간을 정렬하고 시각화하는 데 도움이 되는 여러 개의 서브 메뉴가 있습니다.

타이밍 인사이트 창에는 프레임(Frames) 패널 (1), 타이밍(Timing) 패널 필터 (2), 타이밍 패널 (3), 로그(Log) 패널 (4) 타이머(Timers) 및 카운터(Counters) 탭 (5), 호출자(Callers) 및 피호출자(Callees) 패널 (6)이 있습니다.
자세한 내용은 타이밍 인사이트 문서를 참조하세요.
메모리 인사이트
메모리 인사이트(Memory Insights) 는 프로젝트의 메모리 사용 및 콜 스택 트레이싱을 조사할 수 있는 컴포넌트입니다.
메모리 인사이트는 런타임에 발생하는 모든 할당, 재할당, 해제 이벤트마다 이벤트를 트레이스한 뒤, 분석 과정에서 해당 메모리 사용 패턴을 재구성합니다.
데이터 설정, 트레이스, 쿼리 및 정렬 방법은 메모리 인사이트 문서를 참조하세요.
네트워킹 인사이트
언리얼 인사이트에 포함된 네트워킹 인사이트(Networking Insights) 를 통해 네트워크 트래픽을 분석, 최적화, 디버깅할 수 있습니다.
추가 문서는 네트워킹 인사이트를 참조하세요.
슬레이트 인사이트
슬레이트 인사이트(Slate Insights) 는 언리얼 인사이트를 확장하여 특정 슬레이트(Slate) 및 UMG 업데이트의 근본 원인을 식별하는 툴을 제공함으로써 개발자가 UI 퍼포먼스를 개선하도록 지원합니다.
추가 문서는 슬레이트 인사이트를 참조하세요.
에셋 로딩 인사이트
에셋 로딩 인사이트(Asset Loading Insights) 프로젝트의 에셋을 언리얼 엔진으로 로드하는 데 걸리는 시간을 프로파일링할 수단을 제공합니다. 이를 통해 에셋 타입별 데이터 세트에 대해 자세하게 이해할 수 있습니다. 에셋 로딩 인사이트는 AssetLoadTime 트레이스 채널에서 트레이싱된 데이터를 기반으로 합니다.
쿠킹 인사이트
언리얼 쿠킹 인사이트(Unreal Cooking Insights) 를 사용하여 프로젝트에서 패키지가 쿠킹되는 방식에 대한 정보를 수집하고 표시할 수 있습니다. 쿠킹 시간이 길면 대규모 프로젝트에서 작업하는 팀의 생산성에 심각한 영향을 미칩니다. 각 패키지 쿠킹에 걸리는 시간을 표시함으로써 최적화 시 어떤 패키지를 집중 조사해야 할지 관찰할 수 있습니다. 추가 문서는 쿠킹 인사이트를 참조하세요.
레퍼런스
사용자는 언리얼 인사이트 와 함께 제공되는 수많은 기능을 최대한 활용할 수 있도록 매크로와 명령줄 옵션으로 프로젝트의 출력을 커스터마이징할 수 있습니다.
추가 문서는 레퍼런스를 참조하세요.