트레이스(Trace) 는 실행 중인 프로세스에서 계측 이벤트를 트레이싱하기 위한 구조화된 로깅 프레임워크입니다. 이 프레임워크는 스스로 설명되며 소비하고 공유하기 쉬운 트레이스 이벤트 스트림을 높은 빈도로 생성합니다. TraceLog 와 TraceAnalysis 모듈은 프레임워크를 구성하는 주요 모듈입니다.
언리얼 인사이트의 주요 컴포넌트에는 트레이스(Trace) 이벤트, 애플리케이션의 트레이스를 기록하고 저장하는 언리얼 트레이스 서버(Unreal Trace Server), 데이터를 분석하고 시각화하는 언리얼 인사이트(Unreal Insights)가 있습니다.
저장된 트레이스 세션은 자체 설명이 있으며 여러 엔진 버전 간에 호환됩니다. 세션은 .utrace 파일에 저장됩니다. 생성된 컴패니언 데이터는 트레이스 파일과 같은 위치의 .ucache 파일에 저장됩니다.
트레이스 둘러보기
언리얼에서 트레이스 서버는 Engine/Binaries/Win64 디렉터리 폴더에 있는 별도의 서버 프로세스 실행 파일 UnrealTraceServer.exe 로 실행됩니다.
실행 파일은 언리얼 트레이스 세션 브라우저에서 연결할 때 언리얼 에디터 빌드에서 자동으로 실행됩니다. 언리얼 트레이스 서버(Unreal Trace Server)는 백그라운드에서 단일 서버 인스턴스로 실행되며, 여러 프로젝트 또는 브랜치 간에 공유할 수 있습니다.
퍼포먼스에 최소한의 영향만 미치는 가벼운 프로그램이며 유저 인터페이스는 없습니다. 프로세스를 수동으로 종료하려면 시스템의 작업 관리자에 액세스하면 됩니다.
시스템 작업 관리자의 프로세스 탭에 실행 중인 서버 트레이스가 표시됩니다.
다수의 소스에서 동시에 데이터를 수신 및 기록할 수 있으며 백그라운드에서 단일 인스턴스로 실행되므로 새 버전을 실행하기 위해 종료할 필요가 없습니다.
현재는 언리얼 트레이스 서버를 실행하는 머신당 한 명의 사용자만 지원합니다. 다수의 사용자가 동시에 로그인하면 트레이스가 첫 사용자의 트레이스 디렉터리에 저장되므로 나머지 사용자는 액세스할 수 없습니다.
트레이싱 런타임
1. 언리얼 인사이트 실행:
Engine\Binaries\Win64 폴더로 이동한 다음 UnrealInsights.exe를 더블클릭합니다.
2. 인사이트 세션 브라우저:
언리얼 인사이트(Unreal Insights) 세션 브라우저(Session Browser) 를 실행하면 현재 사용 가능한 라이브 세션이 없다는 것을 알 수 있습니다.
3. 게임 프로젝트 실행:
운영 체제에서 명령 프롬프트(Command Prompt) 를 실행하고 프로젝트를 실행합니다.
cd C:\MyEngineInstallLocation\
Samples\Games\Binaries\Win64\YourProject.exe
로컬 설치 경로와 일치하도록 파일 디렉터리 경로를 변경해야 할 수도 있습니다.
테일 트레이싱
테일 트레이싱(Tail Tracing) 은 마지막 몇 초(버퍼 크기에 따라 다름) 동안의 이벤트, 즉 직전 상황을 표시할 수 있는 머신을 트래킹합니다.
버퍼의 디폴트 크기는 4MB지만 명령줄에서 다음 명령을 사용하여 수정하거나 비활성화할 수 있습니다.
-tracetailmb=x
X 를 0MB 로 설정하면 비활성화되며 다른 값을 넣으면 버퍼 크기가 그 값으로 변경됩니다.
늦은 연결 향상
이전 버전의 언리얼 인사이트에서는 인사이트 프로그램과의 연결이 늦어지면 연결 성공 전의 일회성 이벤트(중요 이벤트)를 놓치는 경우가 있었습니다.
이제는 중요 이벤트 가 언리얼 엔진 클라이언트 측에 캐싱되므로, 연결되는 동안 연결이 늦어진 머신에 전송됩니다.
인사이트는 로컬 머신의 관여 없이 로컬 UI 인스턴스로부터 원격 트레이스 서버에 연결하도록 원격 실행 언리얼 엔진 인스턴스에 지시할 수 있습니다.
늦은 연결을 시작하려면 언리얼 인사이트(Unreal Insights) > 연결(Connect) 로 이동하거나 에디터 명령 콘솔(Editor cmd console) 에서 다음 명령 중 하나를 입력합니다.
"trace.send [ip]" / "trace.start [filename]"
-trace.start[file][channelSet] -tracehost=[ip]
-tracefile = [filepath]
언리얼 인사이트는 트레이스에 추가 정보를 어태치하는 능력을 애플리케이션에 제공하는 파일 기반 캐싱 시스템입니다. 이전에 계산된 결과를 더 빨리 가져오거나 기호 등 다른 방식으로는 손실될 데이터를 저장하는 데 유용합니다. 캐시는 트레이스 파일과 같은 위치에 .ucache 파일로 저장됩니다.
스크린샷 트레이싱
명령줄에서 다음 실행인자를 사용하여 스크린샷 트레이싱(Screenshot Tracing) 을 활성화할 수 있습니다.
-trace=default,screenshot
스크린샷 트레이싱이 활성화되면 콘솔 명령 trace.screenshot 을 사용하여 그 프레임 도중 프로젝트 스크린샷을 찍을 수 있습니다. 언리얼 인사이트에서는 디버깅을 시각적으로 보조하기 위해 타이밍 인사이트 타임라인에 빨간색 수직선이 표시됩니다.
트레이스 사용자 가이드
언리얼 인사이트에서 트레이스를 실행하는 워크플로는 다양합니다. 자세한 정보는 트레이스 사용자 가이드를 참고하세요.
트레이스 개발자 가이드
언리얼 인사이트에서 직접 트레이스를 개발할 수도 있습니다. 자세한 정보는 트레이스 개발자 가이드를 참조하세요.