타이머(Timers) 및 호출자(Callers) 패널에는 타이밍 패널의 하이라이트된 범위 내에서 발생하는 이벤트 목록이 표시됩니다. 각 패널의 컨트롤은 비슷하지만, 각 이벤트에 대해 표시되는 정보는 다릅니다.
타이머
타이머(Timers) 패널에는 타이밍 패널에 지정된 시간 범위 내에서 실행되는 모든 타이머 이벤트가 나열됩니다. 이 리스트는 시간 범위에 따라 데이터를 그룹화하는 것 외에 활성 열의 값에 따라 오름차순 또는 내림차순으로 정렬할 수도 있습니다.
| 그룹 이름 | 설명 |
|---|---|
| 플랫(Flat) | 단일 그룹을 생성합니다. 모든 타이머를 포함합니다. |
| 타이머 이름(Timer Name) | 문자마다 그룹을 하나씩 생성합니다. |
| 타이머 타입(Timer Type) | 각 타이머 타입마다 그룹을 하나씩 생성합니다. |
| 인스턴스 수(Instance Count) | 각 지수 범위(1~10, 10~100, 100~1000)마다 그룹을 하나씩 생성합니다. |
메인 그래프에서 이벤트 플로팅하기
타이머 패널 목록에서 이벤트를 더블클릭하여 하이라이트합니다. 컬러가 지정된 박스가 목록에서 이벤트 옆에 표시되며, 메인 그래프가 이벤트를 해당 컬러로 플로팅합니다. 제거하려면 이벤트를 다시 한번 더블클릭합니다.
더 많은 그래프 플로팅 옵션을 보려면 이벤트를 우클릭하고 플롯 타이머(Plot Timer) 서브 메뉴로 이동합니다.
| 옵션 | 설명 |
|---|---|
| 그래프 트랙에 인스턴스 시리즈 추가(Add instance series to graph track) | 타이머 패널의 메인 그래프에서 선택된 이벤트의 모든 인스턴스를 플로팅합니다. |
| 그래프 트랙에 게임 프레임 통계 시리즈 추가(Add game frame stats series to graph track) | 타이머 패널의 메인 그래프에서 선택된 이벤트의 게임 프레임 정보를 플로팅합니다. |
| 프레임 트랙에 게임 프레임 통계 시리즈 추가(Add game frame stats series to the frame track) | 프레임 패널의 그래프에서 선택된 이벤트의 게임 프레임 정보를 플로팅합니다. |
| 그래프 트랙에 렌더링 프레임 통계 시리즈 추가(Add rendering frame stats series to graph track) | 타이머 패널의 메인 그래프에서 선택된 이벤트의 렌더링 프레임 정보를 플로팅합니다. |
| 프레임 트랙에 렌더링 프레임 통계 시리즈 추가(Add rendering frame stats series to the frame track) | 프레임 패널의 그래프에서 렌더링 프레임 정보를 플로팅합니다. |
집계 모드
모드(Modes) 드롭다운을 클릭하여 사용 가능한 집계 모드 중 하나를 선택합니다. 각 모드는 타이머 통계를 다르게 계산하며 다른 데이터를 표시합니다.
| 모드 | 설명 |
|---|---|
| 인스턴스(Instance) | 타이머 인스턴스별로 타이머 통계를 계산합니다. |
| 게임 프레임(Game Frame) | 게임 프레임별로 타이머 통계를 계산합니다. |
| 렌더링 프레임(Rendering Frame) | 렌더링 프레임별로 타이머 통계를 계산합니다. |
인스턴스 모드
인스턴스 모드에서는 타이머 목록에 다음 데이터가 표시됩니다.
| 값 | 설명 |
|---|---|
| 타이머 또는 그룹 이름(이름)(Timer or Group Name (Name)) | 타이머 또는 그룹의 이름입니다. |
| 인스턴스 수(수)(Instance Count (Count)) | 선택된 타이머의 타이밍 이벤트 인스턴스 수입니다. |
| 포함 프레임 시간(포함)(Inclusive Frame Time (Incl)) | 선택된 타이머 인스턴스의 총 포함 기간입니다. |
| 제외 프레임 시간(제외)(Exclusive Frame Time (Excl)) | 선택된 타이머 인스턴스의 총 제외 기간입니다. |
게임/렌더링 프레임 모드
게임 또는 렌더링 프레임 모드에서는 타이머 목록에 나열된 타이머 이벤트의 포함 기간이 표시됩니다. 포함 기간은 해당 프레임에 있는 모든 타이머 인스턴스의 포함 시간의 합으로 단일 프레임에 대해 계산됩니다. 나열된 모든 시간 값은 밀리초(ms) 단위입니다.
| 값 | 설명 |
|---|---|
| 타이머 또는 그룹 이름(이름)(Timer or Group Name (Name)) | 타이머 또는 그룹의 이름입니다. |
| 최대 포함 시간(최대 포함)(Max Inclusive Time (I.Max)) | 선택된 타이머 이벤트에 대한 프레임의 최대 포함 기간을 계산합니다. 최대값은 프레임당 포함 기간에서 선택됩니다. |
| 평균 포함 시간(평균 포함)(Average Inclusive Time (I.Avg)) | 선택된 타이머 이벤트에 대한 프레임당 평균 포함 기간을 계산합니다. |
| 중앙 포함 시간(중앙 포함)(Median Inclusive Time (I.Med)) | 선택된 타이머 이벤트에 대한 프레임당 중앙 포함 기간 근사치를 계산합니다. |
| 최소 포함 시간(최소 포함)(Minimum Inclusive Time (I.Min)) | 선택된 타이머 이벤트에 대한 프레임의 최소 포함 기간을 계산합니다. 최대값은 프레임당 포함 기간에서 선택됩니다. |
정렬 순서 변경하기
정렬 순서를 변경하거나 열을 활성화/비활성화하려면 열을 우클릭합니다. 다음과 같은 옵션을 사용할 수 있습니다.
| 정렬 옵션 | 추가 정렬 옵션 | 설명 |
|---|---|---|
| 오름차순 정렬(Sort Ascending)(타이머, 그룹 이름, 인스턴스 수, 총 포함, 총 제외 기준) | 열을 오름차순으로 정렬합니다. | |
| 내림차순 정렬(Sort Descending)(타이머, 그룹 이름, 인스턴스 수, 총 포함, 총 제외 기준) | 열을 내림차순으로 정렬합니다. | |
| 정렬 기준(Sort By): | 타이머 또는 그룹 이름 |
인스턴스 수 총 포함 시간 총 제외 시간 오름차순 정렬 내림차순 정렬 | 타이머 또는 그룹 이름. 선택된 인스턴스 수. 선택된 타이머 인스턴스의 총 포함 기간. 선택된 타이머 인스턴스의 총 제외 기간. |
| 열 비저빌리티 그룹 | 설명 |
|---|---|
| 열 보기(View Column) | 다음 열을 표시하거나 숨깁니다. |
타이머 또는 그룹 이름 메타 그룹 이름 타입 인스턴스 수 총 포함 시간 최대 포함 시간 평균 포함 시간 중앙 포함 시간 최소 포함 시간 총 제외 시간 최대 제외 시간 평균 제외 시간 중앙 제외 시간 최소 제외 시간 |
| 모든 열 표시(Show All Columns) | 모든 열을 표시하도록 트리 뷰를 리셋합니다. |
| 열을 최소/최대/중앙치 프리셋으로 리셋(Reset Columns to Min/Max/Median Preset) | 열을 최소/최대/중앙치 프리셋으로 리셋합니다. |
| 열을 디폴트로 리셋(Reset Columns to Default) | 열을 디폴트로 리셋합니다. |
에셋 로드 시간
명령줄에서 타이밍 인사이트(Timing Insights)를 시작할 때 에셋 로드 시간(Asset Load Time) 채널을 사용하여 명명된 UObject::Serialize CPU 타이머를 활성화하고 블루프린트 이름 트레이싱을 토글할 수 있습니다.
명령줄에서 에셋 로드 시간 트래킹을 활성화하려면 다음 실행인자를 사용하면 됩니다.
-trace=default,AssetLoadTime
추가된 타이머가 많기 때문에 블루프린트 이름 트레이싱을 켜면 트레이스 인사이트(Trace Insights)에서 기본적으로 숨겨집니다.
블루프린트 이름 활성화
블루프린트 이름 트레이싱을 활성화하려면 명령줄에서 이 실행인자를 켜야 합니다.
에셋 로드 시간 트래킹을 활성화한 뒤 다음 실행인자를 추가하여 블루프린트 이름을 표시할 수 있습니다.
`-statnamedevents`
UI를 열지 않고 명령 실행하기
타이밍 인사이트는 UI를 열지 않고 명령줄에서 직접 실행 가능합니다. 단일 명령을 명령줄에서 직접 지정하거나 응답 파일을 사용하여 일련의 명령을 실행할 수 있습니다. 어떤 경우든 데이터 세트는 .csv 또는 .tsv 파일로 익스포트됩니다.
| 명령 | 설명 |
|---|---|
TimingInsights.ExportThreads |
GPU 및 CPU 스레드 목록을 익스포트합니다. |
TimingInsights.ExporTimers |
이 명령은 GPU 및 CPU 타이머 목록을 익스포트합니다. |
TimingInsights.ExportTimingEvents |
GPU 및 CPU 타이밍 이벤트 목록을 익스포트합니다. 익스포트되는 이벤트 목록은 스레드, 타이머, 시간 범위를 기준으로 필터링할 수 있습니다. |
TimingInsights.ExportTimerStatistics |
이 명령은 GPU 및 CPU 타이머 목록 및 집계된 통계를 익스포트합니다. 익스포트되는 파일은 단일 영역의 경우 100개로 제한되며, 익스포트되는 총 .csv 파일 수는 10,000개로 제한됩니다. 이 명령은 영역 지정 시 ?-type 와일드카드 사용을 지원합니다. |
이러한 명령은 자동화된 테스트를 실행할 때 유용할 수 있습니다.
명령줄에서 응답 파일을 지정하려면 -ExecOnAnalysisCompleteCmd 파라미터를 사용하고 위치를 제공하여 응답 파일을 .rsp 포맷으로 익스포트합니다. 예시:
UnrealInsights.exe -OpenTraceFile=path/file.utrace -AutoQuit -NoUI -ExecOnAnalysisCompleteCmd="@=D:\Tests\export.rsp"
익스포트 기능
타이머 패널에서 하나 이상의 타이머를 선택하고 컨텍스트 메뉴를 우클릭하여 타이밍 이벤트 데이터를 익스포트할 수 있습니다.
타이머 옵션(Timer Option) 은 다음과 같습니다.
| 옵션 | 설명 |
|---|---|
| 이벤트 하이라이트(Highlight Event) | 선택된 타이머의 모든 타이밍 이벤트 인스턴스를 하이라이트합니다. |
| 플롯 타이머(Plot Timer) | |
| 인스턴스 찾기(Find Instance) | 지정된 기간의 이벤트 인스턴스를 찾아 선택합니다. 여기에는 다음과 같은 옵션이 포함됩니다. |
최대 경과시간 인스턴스(Maximum Duration Instance) -- 기간이 가장 긴 이벤트 인스턴스를 선택합니다. 최소 경과시간 인스턴스(Minimum Duration Instance) -- 기간이 가장 짧은 이벤트 인스턴스를 선택합니다. 선택의 최대 경과시간 인스턴스(Maximum Duration Instance in Selection) -- 사용자가 현재 선택한 인스턴스 중에서 기간이 가장 긴 인스턴스를 선택합니다. 선택의 최소 경과시간 인스턴스(Minimum Duration Instance in Selection) -- 사용자가 현재 선택한 인스턴스 중에서 기간이 가장 짧은 인스턴스를 선택합니다. |
| Visual Studio에서 소스 열기(Open Source in Visual Studio) | 선택한 메시지의 소스 파일을 Visual Studio에서 엽니다. |
| 이 옵션을 사용하려면 먼저 Visual Studio가 열려 있어야 합니다. 그렇지 않으면 시작 페이지만 열릴 수 있습니다. |
기타(Miscellaneous) 익스포트 옵션에는 다음이 포함됩니다.
| 옵션 | 설명 |
|---|---|
| 클립보드에 복사(Copy To Clipboard)(Ctrl+C) | 선택한 타이머와 해당 이벤트를 클립보드에 복사합니다. |
| 익스포트(Export)(Ctrl+S) | 선택한 타이머와 그룹화된 통계를 텍스트 파일로 익스포트합니다. |
타이밍 뷰로 이동한 후 시간 바를 클릭하여 드래그하면 메인 타임라인 뷰에서 저장하려는 시간을 표시할 수 있습니다. 타이머 패널에서 그룹화된 통계가 업데이트되어 시간 선택을 반영하는 것을 관찰합니다. 타이머 패널에서 수동으로 저장할 타이머를 선택하거나 Ctrl+A를 사용하여 모든 타이머를 선택합니다. 다음으로 Ctrl+S를 누르거나 컨텍스트 메뉴에서 익스포트(Export)를 선택하고 .tsv, .txt 또는 *.csv 파일을 선택하여 선택한 타이머 및 선택한 시간 범위에서 집계된 통계를 저장합니다. |
| 타이밍 이벤트 익스포트(Export Timing Events) | 타이밍 이벤트를 텍스트 파일로 익스포트합니다. |
타이밍 뷰로 이동한 후 시간 바를 클릭하여 드래그하면 메인 타임라인 뷰에서 익스포트하려는 시간을 표시할 수 있습니다. 시간을 선택하지 않으면 전체 타임라인이 익스포트됩니다. 타이밍 패널에서 CPU/GPU 스레드 트랙을 클릭하여 익스포트할 트랙을 표시하거나 숨깁니다. 원하는 타이머를 선택하거나 Ctrl+A를 사용하여 모든 타이머를 선택합니다. 컨텍스트 메뉴에서 타이밍 이벤트 익스포트(선택)...(Export Timing Events (Selection)...) 를 선택하고 탭으로 구분된 값(.tsv/.txt) 또는 쉼표로 구분된 값(*.csv) 파일을 선택합니다. 스레드 ID 및 타이머 ID를 스레드 및 타이머의 이름과 일치시키기 위해 '스레드' 및 '타이머'도 익스포트할 수 있습니다. |
| 익스포트 옵션 더 보기(More Export Options)/스레드 익스포트(Export Threads) | 타이머 목록을 텍스트 파일로 익스포트합니다. (.tsv 또는 .csv)로 익스포트합니다. |
| 익스포트 옵션 더 보기(More Export Options)/타이밍 이벤트 익스포트(모두)(Export Timing Events (All)) | 모든 CPU/GPU 스레드의 모든 타이밍 이벤트를 텍스트 파일(.tsv 또는 .csv)로 익스포트합니다. |
| 익스포트된 파일의 크기가 매우 클 수 있습니다. 작은 세션도 수백만 개의 타이밍 이벤트를 가질 수 있습니다. |
CPU 타이머에 대한 소스 파일
타이머 패널에서 소스 파일 및 라인 번호는 각 타이머의 툴팁에 표시됩니다.
카운터
카운터 패널에는 타이머 패널과 동일한 기간에 증가한 모든 통계가 나열됩니다. 정렬 순서 및 열 구성을 업데이트하여 패널을 재배열할 수 있습니다.
다음과 같은 그룹을 사용할 수 있습니다.
| 그룹 이름 | 설명 |
|---|---|
| 플랫(Flat) | 단일 그룹을 생성합니다. 모든 카운터를 포함합니다. |
| 통계 이름(Stats Name) | 글자마다 그룹을 하나씩 생성합니다. |
| 메타 그룹 이름(Meta Group Name) | 카운터의 메타데이터 그룹 이름에 따라 그룹을 생성합니다. |
| 카운터 타입(Counter Type) | 각 카운터 타입마다 그룹을 하나씩 생성합니다. |
| 데이터 타입(Data Type) | 각 데이터 타입마다 그룹을 하나씩 생성합니다. |
| 수(Count) | 각 지수 범위(1~10, 10~100, 100~1000)마다 그룹을 하나씩 생성합니다. |
컨텍스트 메뉴
카운터의 컨텍스트 메뉴는 데이터를 복사하고 값을 탭으로 구분된 값(TSV) 스프레드시트로 익스포트하는 옵션을 제공합니다.
| 옵션 | 설명 |
|---|---|
| 선택(Selection) | 선택된 카운터의 요약을 표시합니다. |
| 그래프 트랙에 시리즈 추가(Add Series to Graph Track) | 선택된 카운터를 메인 그래프에 추가합니다. |
| 클립보드에 복사(Copy to Clipboard) | 선택된 카운터의 데이터를 탭으로 구분된 포맷으로 클립보드에 복사합니다. |
| 익스포트(Export) | 선택된 카운터의 데이터를 탭으로 구분된 값(.tsv) 파일로 익스포트합니다. |
| 값 익스포트(Export Values) | 선택된 카운터의 .tsv 파일을 메인 그래프에서 선택된 시간 영역 내 카운터 값만 포함하여 익스포트합니다. |
| 연산 익스포트(Export Operations) | 선택된 카운터의 .tsv 파일을 메인 그래프에서 선택된 시간 영역 내 연산만 포함하여 익스포트합니다. |
| 카운터 익스포트(Export Counters) | 전체 카운터 목록을 .tsv 파일로 익스포트합니다. |
1/프레임 카운터
일반 카운터는 단일 활동 프레임 내의 모든 중간 포인트를 표시합니다. 1/프레임(1/frame) 베리언트는 ShouldClearEveryFrame 플래그를 포함하며 (1/frame) 접미사와 함께 표시됩니다. 따라서 게임 스레드당 하나의 값만 표시하며, 구체적으로는 각 프레임의 마지막 값을 표시합니다. 이러한 카운터는 여러 프레임 간의 베리에이션을 조사할 때 더 유용합니다.
창 퍼포먼스 카운터
창 퍼포먼스 카운터는 다음 전제조건을 충족하면 카운터 목록에 표시됩니다.
-
명령줄에
-perfcounters가 있습니다. -
카운터 트레이스 채널이 활성화되어 있습니다.
이러한 카운터는 접두사 PC /와 함께 표시됩니다.
호출자 및 피호출자
호출자(Callers) 및 피호출자(Callees) 패널에는 태스크 이벤트의 계층구조 목록이 표시됩니다. 타이밍 뷰에서 이벤트를 선택할 때 개별 태스크의 정보 아이콘 위로 커서를 가져가면 다음 정보가 표시됩니다.
- ID
- 이름(Name)
- 타입(Type)
- 소스(Source)
- 인스턴스 수((Number of instances) (Num Instances))
- 인스턴스 수, 총 포함 및 제외 시간에 대한 상세 정보.
- 평균 포함/제외 시간(Average Inclusive / Exclusive Time)
- 인스턴스 수로 나눈 총 포함/제외 시간.
- 자손 인스턴스 수(Child Instance Count)
- 자손 타이머의 총 타이밍 이벤트 인스턴스 수(호출자 또는 피호출자).
