타이밍 인사이트

언리얼 인사이트의 타이밍 인사이트 창에 대한 개요입니다.

타이밍 인사이트(Timing Insights) 창에서는 CPUGPU 트랙을 비롯한 다양한 트랙의 프레임당 퍼포먼스 데이터를 찾을 수 있습니다. 타이밍 뷰(Timing view) 에 새 툴바 가 추가되어 트랙(Tracks) 드롭다운 메뉴가 여러 개의 메뉴로 분할되었습니다. 이 메뉴에서는 프로젝트에서 여러 작업에 소요되는 시간을 다양한 방식으로 시각화할 수 있습니다.

타이밍 인사이트 창에는 프레임(Frames) 패널(1), 타이밍(Timing) 패널(2), 로그(Log) 패널(3), 타이머(Timers) 및 카운터(Counters) 탭(4), 호출자(Callers) 및 피호출자(Callees) 패널(5)이 있습니다.

타이밍 인사이트 메인 툴바

툴바에는 시간 블록을 선택하여 그룹별로 확인하고, 데이터를 정렬하거나 분류하고, 로그 출력을 검토하는 기능이 있습니다.

각 트랙을 클릭하면 타이밍(Timing) , 타이머(Timers) , 호출자(Callers) , 피호출자(Callees) , 카운터(Counters) , 로그(Log) 트랙에서 해당 프레임 데이터의 표시 여부를 토글할 수 있습니다.

main-toolbar-insights

시간 블록을 선택하여 집계를 보고, 각 패널을 표시하거나 숨기고, 데이터를 정렬하거나 분류하고, 로그 출력을 검토할 수 있습니다. 이렇게 하려면 프레임(Frames) 패널 에서 단일 프레임을 클릭하거나 타이밍(Timing) 패널 상단에 있는 타임 룰러(Time Ruler) 라는 스크럽 바의 섹션을 클릭하고 드래그합니다.

프레임

프레임(Frames) 패널은 각 프레임에 소요되는 총시간을 막대 그래프 형식으로 표시합니다. 레벨이 로드될 때의 퍼포먼스 또는 프레임 레이트 저하, 최적화되지 않은 씬이 표시되는 것, 많은 액터가 동시에 스폰되는 것과 같은 일반적인 경향을 식별하는 데 유용합니다.

frames-panel

프레임 패널에는 프레임(Frames), 타이밍(Timing), 타이머(Timers), 호출자(Callers), 피호출자(Callees), 카운터(Counters), 로그(Log) 트랙이 표시됩니다.

바에 커서를 가져가면 해당 프레임의 인덱스와 실행 시간이 나타납니다.

frames-index

바를 우클릭하면 다음과 같이 줌(Zoom) 컨텍스트 메뉴 옵션이 나타납니다.

zoom-context-menu

옵션

설명

자동 줌(Auto Zoom)

전체 세션 시간 범위를 프레임 표시 창에 맞추는 자동 줌을 토글합니다.

프레임 선택 시 줌 타이밍 보기(Zoom Timing View on Frame Selection)

프레임을 선택할 때 타이밍 뷰의 줌 여부를 토글합니다.

이러한 옵션은 UnrealInsightsSettings.ini 파일에서도 편집할 수 있습니다.

타이밍

각 트랙 옆에 있는 화살표를 클릭하여 각 트랙을 개별적으로 표시하거나 숨길 수 있습니다.

timing-tracks

모든 트랙

모든 트랙(All Tracks) 드롭다운 화살표를 클릭하면 사용 가능한 모든 트랙의 목록이 표시됩니다.

all-tracks-menu

CPU/GPU

CPU/GPU 드롭다운 화살표를 클릭하면 CPU 및 GPU 트랙과 스레드 그룹 옵션이 표시됩니다.

cpu-gpu-menu

기타

기타(Other) 드롭다운 화살표를 클릭하면 메인 그래프(Main Graph) , 파일 활동(File Activity) , 에셋 로딩(Asset Loading) , 프레임 트랙(Frames Tracks) 의 비저빌리티 옵션이 표시됩니다.

other-menu

플러그인

플러그인(Plugins) 드롭다운 화살표를 클릭하면 플러그인에 의해 노출되는 트랙과 옵션이 표시됩니다. 슬레이트(Slate) , 게임플레이(Gameplay) , 애니메이션(Animation) , RDG 트랙(RDG Tracks) 에 관한 정보가 있습니다.

plugins-menu

뷰 모드

뷰 모드(View Mode) 드롭다운 화살표는 타이밍 뷰의 다양한 옵션에 대한 제어 메뉴를 표시합니다.

view-mode-options

타이밍 뷰 옵션

설명

컴팩트 모드(Compact Mode) (단축키: C )

타이밍 트랙의 높이를 줄여서 표시하는 컴팩트 모드를 토글합니다.

빈 트랙 자동 숨김(Auto Hide Empty Tracks) (단축키: V )

타이밍 이벤트가 없는 빈 트랙을 자동으로 숨깁니다. 이 옵션은 UnrealInsightsSettings.ini 파일에도 있습니다.

깊이 제한(Depth Limit) (단축키: X ) * 무제한 / 4레인 / 단일 레인

다양한 CPU 깊이 옵션의 표시를 토글합니다. X 단축키로 다양한 CPU 깊이 옵션을 순환할 수 있습니다.

컬러링 모드(Coloring Mode) (CPU 스레드 트랙)

기간(포함 시간)에 따라 CPU/GPU 타이밍 이벤트에 색상을 할당할 수 있습니다.

색상 키는 다음과 같습니다.

  • ≥ 10ms : 빨간색.

  • ≥ 1ms : 노란색.

  • ≥ 100μs : 초록색.

  • ≥ 10μs : 하늘색.

  • ≥ 1μs : 파란색.

  • < 1μs : 회색.

화면 가장자리 패닝 허용(Allow Panning on Screen Edges)

활성화하면 마우스 커서가 화면 가장자리에 도달했을 때 패닝이 계속됩니다.

빠른 찾기 위젯

빠른 찾기(Quick Find) 위젯은 타이밍 뷰(Timing View) 에 표시된 이벤트를 검색하고 필터링하는 데 사용됩니다. 이 위젯은 타이밍 이벤트(Timing Event) 를 우클릭하여 타이밍 뷰 컨텍스트 메뉴에서 열거나 타이밍 뷰가 포커싱된 상태에서 Ctrl + F 단축키를 사용하여 열 수 있습니다.

quick-find-widget

빠른 찾기 위젯의 검색 로직은 그룹**과 필터** 를 사용하여 정의됩니다. 그룹 노드는 자손 필터 노드를 포함하고 자손의 결과에 적용되는 로직을 정의합니다. 필터 노드는 리프 노드이며 각각 필터를 포함합니다.

각 필터는 다음을 포함합니다.

  • 드롭다운 메뉴에서 선택할 수 있는 필터 타입.

  • 드롭다운 메뉴에서 선택할 수 있는 필터 연산자.

  • 텍스트 박스에 입력할 수 있는 필터 값.

필터 로직이 생성되면, 타이밍 뷰에서 이벤트를 검색하거나 트랙을 필터링하는 데 사용할 수 있습니다.

필터

설명

첫 번째 찾기(Find First)

이벤트의 시작 시간 순서에 따라 필터와 일치하는 첫 번째 이벤트를 검색합니다. 일치하는 항목이 검색되면 해당 항목이 선택되고 타이밍 뷰로 표시됩니다.

이전 찾기(Find Previous)

현재 선택된 이벤트의 시작 시간에서 출발하여 필터와 일치하는 이전 이벤트를 검색합니다. 선택된 이벤트가 없는 경우, 첫 번째 찾기 로 작동합니다.

다음 찾기(Find Next)

현재 선택된 이벤트의 시작 시간에서 출발하여 필터와 일치하는 다음 이벤트를 검색합니다. 선택된 이벤트가 없는 경우, 마지막 찾기 로 작동합니다.

마지막 찾기(Find Last)

이벤트의 시작 시간 순서에 따라 필터와 일치하는 마지막 이벤트를 검색합니다. 일치하는 항목이 검색되면 해당 항목이 선택되고 타이밍 뷰로 표시됩니다.

필터 적용(Apply Filter)

트랙에서 필터 로직을 전달하는 모든 타이밍 이벤트를 하이라이트합니다.

필터 지우기(Clear filters)

필터 로직에 따른 이벤트 하이라이트를 중단합니다.

필터 로직을 변경하는 경우, 필터 적용(Apply Filter) 을 다시 클릭해야 이벤트가 새 로직에 따라 하이라이트됩니다.

타이머

타이머(Timers) 패널은 타이밍 패널에서 지정한 시간 범위 안에 실행된 모든 타이머 이벤트의 목록을 보여줍니다. 시간 범위에 따라 데이터가 그룹화된 것에 더해, 목록은 활성화된 열의 값에 따라 오름차순 또는 내림차순으로 정렬될 수 있습니다.

그룹 이름

설명

평형(Flat)

단일 그룹을 생성합니다. 모든 타이머를 포함합니다.

타이머 이름(Timer Name)

글자당 하나의 그룹을 생성합니다.

타이머 타입(Timer Type)

타이머 타입당 하나의 그룹을 생성합니다.

인스턴스 수(Instance Count)

지수 범위당 하나의 그룹을 생성합니다(예: 1~10, 10~100, 100~1000 등).

정렬 순서를 바꾸거나 열을 활성화 또는 비활성화하려면 열을 우클릭하면 됩니다. 사용 가능한 옵션은 다음과 같습니다.

정렬 옵션

추가 정렬 옵션

설명

오름차순 정렬(Sort Ascending) (타이머(Timer), 그룹 이름(Group Name), 인스턴스 수(Instance Count), 전체 제외(Total Exclusive), 전체 포함(Total Inclusive).)

열을 오름차순으로 정렬합니다.

내림차순 정렬(Sort Descending) (타이머(Timer), 그룹 이름(Group Name), 인스턴스 수(Instance Count), 전체 제외(Total Exclusive), 전체 포함(Total Inclusive).)

열을 내림차순으로 정렬합니다.

정렬 기준(Sort By):

  • 타이머 또는 그룹 이름

  • 인스턴스 수

  • 전체 포함 시간

  • 전체 제외 시간

  • 오름차순 정렬

  • 내림차순 정렬

  • 타이머 이름 또는 그룹.

  • 선택 인스턴스 수.

  • 선택 타이머 인스턴스의 전체 포함 기간.

  • 선택 타이머 인스턴스의 전체 제외 기간.

열 비저빌리티 그룹

설명

열 확인(View Column)

다음 열을 숨기거나 표시합니다.

  • 타이머 또는 그룹 이름

  • 메타 그룹 이름

  • 타입

  • 인스턴스 수

  • 전체 포함 시간

  • 최대 포함 시간

  • 평균 포함 시간

  • 중간 포함 시간

  • 최소 포함 시간

  • 전체 제외 시간

  • 최대 제외 시간

  • 평균 제외 시간

  • 중간 제외 시간

  • 최소 제외 시간

모든 열 표시(Show All Columns)

모든 열을 표시하도록 트리 뷰를 리셋합니다.

열을 최소/최대/중앙치 프리셋으로 리셋(Reset Columns to Min/Max/Median Preset)

열을 최소/최대/중앙치 프리셋으로 리셋합니다.

열을 디폴트로 리셋(Reset Columns to Default)

열을 디폴트로 리셋합니다.

Asset Load Time

명령줄에서 타이밍 인사이트를 시작할 때 Asset Load Time 채널을 사용하면 `UObject::Serialize`에 대한 명명된 CPU 타이머를 활성화하고 블루프린트 이름 트레이스를 토글할 수 있습니다.

과거에는 블루프린트 이름 트래킹이 디폴트로 활성화되었지만, 이로 인해 트레이스 런타임 이벤트에 많은 비용이 추가되었습니다. 이제 블루프린트 이름 트레이스를 활성화하려면 명령줄에서 이 실행인자를 켜야 합니다.

명령줄에서 에셋 로드 시간 트래킹을 활성화하려면, 다음 실행인자를 사용합니다.

`-trace=default,AssetLoadTime`

블루프린트 이름이 켜지면 많은 타이머가 추가되기 때문에, 블루프린트 이름은 디폴트로 트레이스 인사이트(Trace Insights) 안에 숨겨집니다. 에셋 로드 시간 트래킹을 활성화한 후 블루프린트 이름을 표시하려면, 다음 실행인자를 추가합니다.

`-statnamedevents` 를 추가합니다.

UI를 열지 않고 명령 실행하기

타이밍 인사이트는 UI를 열지 않고 명령줄에서 직접 실행할 수 있습니다. 명령줄에 단일 명령을 직접 입력하거나, 응답 파일을 사용하여 일련의 명령을 실행할 수 있습니다. 각각의 경우 데이터 세트는 .csv 또는 .tsv 파일로 익스포트됩니다.

명령

설명

TimingInsights.ExportThreads

GPU 및 CPU 스레드 목록을 익스포트합니다.

TimingInsights.ExportTimers

이 명령은 GPU 및 CPU 타이머 목록을 익스포트합니다.

TimingInsights.ExportTimingEvents

GPU 및 CPU 타이밍 이벤트 목록을 익스포트합니다. 익스포트된 이벤트 목록은 스레드, 타이머 또는 시간 범위를 기준으로 필터링할 수 있습니다.

TimingInsights.ExportTimerStatistics

이 명령은 GPU 및 CPU 타이머 목록과 그에 대해 집계된 통계를 익스포트합니다.

이러한 명령은 자동 테스트를 실행하는 데 유용할 수 있습니다.

익스포트 기능

타이머 패널에서는 하나 이상의 타이머를 선택하고 컨텍스트 메뉴를 우클릭하여 타이밍 이벤트 데이터를 익스포트할 수 있습니다.

타이머 옵션(Timer Options) 은 다음과 같습니다.

옵션

설명

Visual Studio에서 소스 열기(Open Source in Visual Studio)

선택된 메시지의 소스 파일을 Visual Studio에서 엽니다.

이 옵션을 사용하기 전에 Visual Studio가 이미 열려 있어야 합니다. 그렇지 않으면 시작 페이지만 열릴 수 있습니다.

그 외의 기타(Miscellaneous) 익스포트 옵션은 다음을 포함합니다.

옵션

설명

클립보드로 복사(Copy To Clipboard) (Ctrl+C)

선택된 타이머와 그 이벤트를 클립보드로 복사합니다.

익스포트(Export) (CTRL+S)

선택된 타이머와 그룹화된 통계를 텍스트 파일로 익스포트합니다.

  1. 타이밍 뷰로 이동한 후 메인 타임라인 뷰에서 타임 바를 클릭하고 드래그하여 저장할 시간을 표시할 수 있습니다.

  2. 그룹화된 통계가 타이머 패널에서 시간 선택을 반영하여 업데이트되는지 살펴봅니다.

  3. 타이머(Timers) 패널에서 저장하려는 타이머를 수동으로 선택하거나 Ctrl+A를 사용하여 모든 타이머를 선택합니다.

  4. 다음으로 Ctrl+S를 누르거나 컨텍스트 메뉴에서 익스포트(Export)를 선택한 후, 선택된 타이머와 (선택된 시간 범위에 대한) 집계된 통계를 저장할 *.tsv, *.txt 또는 *.csv 파일을 선택합니다.

타이밍 이벤트 익스포트(Export Timing Events)

타이밍 이벤트를 텍스트 파일로 익스포트합니다.

  1. 타이밍(Timing) 뷰로 이동한 후 메인 타임라인 뷰에서 타임 바를 클릭하고 드래그하여 익스포트할 시간을 표시합니다.

아무것도 선택하지 않으면 타임라인 전체가 익스포트됩니다.

  1. 타이밍(Timing) 패널에서 CPU/GPU 스레드 트랙을 클릭하여 익스포트할 트랙을 표시하거나 숨깁니다.

  2. 원하는 타이머를 선택하거나, Ctrl+A를 사용하여 모든 타이머를 선택합니다.

  3. 컨텍스트 메뉴에서 타이밍 이벤트 익스포트(선택)...(Export Timing Events (Selection)...) 을 선택하고 탭 분리 값(*.tsv/*.txt) 또는 쉼표 분리 값(*.csv) 파일을 선택합니다.

  4. 스레드 ID 및 타이머 ID를 스레드 및 타이머 이름과 일치시키기 위해 ‘스레드'와 ‘타이머'를 익스포트할 수도 있습니다.

익스포트 옵션 더 보기(More Export Options) /스레드 익스포트(Export Threads)

타이머의 목록을 텍스트 파일로 익스포트합니다. (.tsv or .csv).

익스포트 옵션 더 보기(More Export Options) /타이밍 이벤트 익스포트(모두)(Export Timing Events (All))

모든 CPU/GPU 스레드의 모든 타이밍 이벤트를 텍스트 파일(.tsv 또는 .csv)로 익스포트합니다.

익스포트한 파일의 크기가 방대할 수 있습니다. 작은 세션에도 수백만 개의 타이밍 이벤트가 존재할 수 있기 때문입니다.

CPU 타이머의 소스 파일

타이머(Timers) 패널의 각 타이머 툴팁에는 소스 파일과 라인 번호가 표시됩니다.

source-files-for-cpu-timers

호출자와 피호출자

호출자(Callers)피호출자(Callees) 패널은 작업 이벤트의 계층구조 목록을 표시합니다. 타이밍 뷰에서 이벤트를 선택하고 개별 작업의 정보 아이콘에 마우스를 올리면 Id , 이름(Name) , 타입(Type) , 소스(Source) , 인스턴스 수(Instance Count) 의 세부 정보를 포함하는 숫자 인스턴스(Num Instances) , 총 포함(Inclusive)제외(Exclusive) 시간이 표시됩니다.

callers-callee-panel

카운터

카운터(Counters) 패널은 타이머 패널과 같은 기간에 증가한 모든 통계의 목록을 보여줍니다. 정렬 순서와 열 구성을 업데이트하여 패널을 재정렬할 수 있습니다.

사용 가능한 그룹은 다음과 같습니다.

그룹 이름

설명

평형(Flat)

단일 그룹을 생성합니다. 모든 카운터를 포함합니다.

통계 이름(Stats Name)

글자당 하나의 그룹을 생성합니다.

메타 그룹 이름(Meta Group Name)

카운터의 메타데이터 그룹에 따라 그룹을 생성합니다.

카운터 타입(Counter Type)

카운터 타입당 하나의 그룹을 생성합니다.

데이터 타입(Data Type)

데이터 타입당 하나의 그룹을 생성합니다.

수(Count)

지수 범위당 하나의 그룹을 생성합니다(예: 1~10, 10~100, 100~1000 등)

로그

로그(Log) 뷰는 트레이스 세션에서 매크로 UE_LOG 를 호출하여 생성된 모든 로그를 표시합니다. 로그는 에디터의 출력 로그(Output Log) 와 유사하게 상세도(Verbosity)카테고리(Category) 기준으로 필터링할 수 있습니다.

log-view

타이밍 패널에서 기간을 선택하면 해당 시간 내의 모든 로그 항목이 하이라이트됩니다. 여러 로그 항목을 선택하면 타이밍 패널은 항목 사이의 시간 범위를 하이라이트합니다. 로그 패널의 검색창은 입력한 텍스트와 일치하지 않는 모든 로그 메시지에 필터를 적용합니다. 필터 적용 외에도 아무 행이나 클릭하면 타이밍 패널이 해당 행의 텍스트가 기록된 시간으로 패닝됩니다. 로그를 저장하려면 하나 이상의 메시지를 선택하고 컨텍스트 메뉴를 우클릭한 후 드롭다운 메뉴에서 다음 옵션 중 하나를 선택하면 됩니다.

메뉴 옵션

설명

복사(Copy) (Ctrl+C)

선택된 로그를 모든 프로퍼티와 함께 클립보드로 복사합니다.

메시지 복사(Copy Message) (Shift+C)

선택된 로그의 메시지 텍스트를 클립보드로 복사합니다.

범위 복사(Copy Range) (Ctrl+Shift+C)

선택된 시간 범위 내의 모든 로그(파란색 하이라이트)를 클립보드로 복사합니다.

모두 복사(Copy All)

모든 로그를 클립보드로 복사합니다.

다음으로 범위 저장…(Save Range As…) (Ctrl+S)

선택된 시간 범위 내의 모든 로그(파란색 하이라이트)를 탭 또는 쉼표로 분리된 값의 텍스트 파일로 저장합니다.

다음으로 모두 저장…(Save All As…)

필터링된 로그를 전부 탭 또는 쉼표로 분리된 값의 텍스트 파일로 저장합니다.

Visual Studio에서 소스 열기(Open Source in Visual Studio)

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