타이밍 인사이트

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

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

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

타이밍 인사이트 메인 툴바

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

Timing , Timers , Callers , Callees , Counters , Log tracks 각 트랙을 클릭하면 해당 프레임 데이터의 표시 여부를 토글할 수 있습니다.

메인-툴바-인사이트

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

Frames

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

프레임-패널

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

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

프레임-인덱스

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

줌 컨텍스트 메뉴

옵션

설명

자동 줌(Auto Zoom)

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

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

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

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

Timing

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

타이밍-트랙

All Tracks

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

모든-트랙-메뉴

CPU/GPU

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

cpu-gpu-메뉴

Other

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

기타-메뉴

Plugins

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

플러그인-메뉴

View Mode

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

뷰-모드-옵션

타이밍 뷰 옵션

설명

컴팩트 모드(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 위젯

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

빠른-찾기-위젯

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

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

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

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

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

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

필터

설명

첫 번째 찾기(Find First)

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

이전 찾기(Find Previous)

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

다음 찾기(Find Next)

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

마지막 찾기(Find Last)

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

필터 적용(Apply Filter)

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

필터 지우기(Clear filters)

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

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

Timers

타이머(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)

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

익스포트 기능

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

타이머 옵션(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. 타이밍 뷰로 이동한 후 메인 타임라인 뷰에서 타임 바를 클릭하고 드래그하여 익스포트할 시간을 표시합니다.

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

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

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

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

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

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

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

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

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

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

CPU 타이머의 소스 파일

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

cpu-타이머의-소스-파일

Callers와 Callees

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

호출자-피호출자-패널

Counters

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

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

그룹 이름

설명

플랫(Flat)

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

통계 이름(Stats Name)

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

메타 그룹 이름(Meta Group Name)

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

카운터 타입(Counter Type)

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

데이터 타입(Data Type)

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

수(Count)

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

로그

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

로그-뷰

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

메뉴 옵션

설명

복사(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)

작업 그래프 인사이트

CPU 작업 트레이스 활성화하기

CPU 작업을 프로파일링하는 방법은 다음과 같습니다.

  1. 명령줄에서 애플리케이션을 실행할 때, 다음 명령을 사용하여 작업(Task)CPU 트레이스 채널을 활성화합니다.

    -trace=default,task
  2. 언리얼 인사이트(Unreal Insights) 세션 브라우저 (Session Browser) 로 이동하여 트레이스 스토어 디렉터리에서 트레이스를 선택하여 언리얼 인사이트(Unreal Insights)에서 .trace 파일을 엽니다. 세션에 작업 이벤트가 있다면 타이밍 인사이트 뷰에서 다음 함수 기능을 사용할 수 있습니다.

a) 타이밍 이벤트(Timing Event) 에 마우스를 가져갔을 때, 현재의 이벤트가 작업 안에 있다면 툴팁 에 추가 정보가 표시됩니다.

b) 타이밍 뷰(Timing View) 트랙의 기타(Other) > 작업(Tasks) 서브 메뉴로 이동합니다. 이 메뉴를 사용하여 작업 그래프와 관련된 시각화 결과를 표시할 수 있습니다.

작업 서브 메뉴 옵션

설명

작업에 중요한 경로 표시(Show Task Critical Path)

현재 경로를 포함하는 중요한 작업을 나타내는 관계를 표시하거나 숨깁니다.

작업 전환 표시(Show Task Transitions)

현재 작업의 스테이지 간 전환을 표시하거나 숨깁니다.

작업 연결 표시(Show Task Connections)

다음 옵션 사이의 작업 연결을 표시하거나 숨깁니다.

  • 선행 작업의 완료 시간 및 현재 작업의 시작 시간.

  • 현재 작업의 완료 시간 및 후속 작업의 시작 시간.

  • 현재 작업의 중첩 작업 추가 시간 및 중첩 작업의 시작 시간

선행 작업 전환 표시(Show Transitions of Prerequisites)

선행 작업에 대한 스테이지 전환을 표시하거나 숨깁니다.

후속 작업 전환 표시(Show Transitions of Subsequents)

후속 작업에 대한 스테이지 전환을 표시하거나 숨깁니다.

중첩 작업의 전환 표시(Show Transitions of Nested Tasks)

현재 작업의 중첩 작업 대한 스테이지 전환을 표시하거나 숨깁니다.

작업 개요 트랙 표시(Show Task Overview Track)

작업이 선택되었을 때 작업 개요 트랙을 표시하거나 숨깁니다.

작업 개요 트랙에 자세한 정보 표시(Show Detailed Info on the Task Overview Track)

작업 개요 트랙에 선행 작업/중첩 작업/후속 작업을 표시합니다.

c) 타이밍 뷰(Timing View) 패널의 아무 곳에나 우클릭하여 타이밍 뷰 컨텍스트 메뉴 를 엽니다. 이 메뉴는 작업(Task) 그래프의 트랙을 정렬할 수 있는 새로운 옵션을 표시합니다.

메뉴 옵션

설명

상단에 고정(Top Docked)

이 트랙을 상단에 고정합니다.

스크롤 가능(Scrollable)

이 트랙을 스크롤 가능 트랙 목록으로 이동합니다.

하단에 고정(Bottom Docked)

이 트랙을 하단에 고정합니다.

d) 작업(Tasks)으로 이동하여 타이밍 이벤트를 선택했고 이때 선택된 타이밍 이벤트를 포함하는 작업이 있다면 작업 종속성 표시(Show Task Dependencies) 메뉴 옵션이 드롭다운 메뉴에 표시됩니다.

표시되는 데이터는 다음과 같습니다.

  • 타이밍 뷰에 화살표 형태로 관계가 표시되어 작업의 수명과 스테이지를 보여줍니다. 여기에는 생성 , 실행 , 예약 , 시작 , 종료 , 완료 시간에 관한 정보가 포함됩니다.

수명-스테이지-데이터

  • 관계는 현재 작업과 선행 작업 , 후속 작업 , 중첩 작업 사이에 표시됩니다.

작업-관계-표시

  • 상단에 도킹된 트랙이 새로 나타나 작업의 스테이지를 타이밍 이벤트로 보여줍니다.

작업 종속성

이 옵션을 하나 이상 활성화하면, 현재 작업의 선행 , 후속 , 중첩 작업에 대하여 이전 섹션에 언급한 모든 관계가 표시됩니다.

예를 들어 선행 작업의 완료 시간(Completed Time) 에서 현재 작업의 예약 시간(Scheduled Time) 까지의 단일 관계만 표시되지 않고, 활성화된 각 선행 작업의 생성(Created) , 실행(Launched) , 예약(Scheduled) , 시작(Started) , 종료(Finished)완료(Completed) 를 나타내는 관계가 모두 표시됩니다.

데이터를 분석할 때는 관계의 수가 급격히 많아질 수 있기 때문에 옵션을 하나씩 활성화할 것을 추천합니다.

  1. 중요한 경로(Critical Path) 옵션을 활성화하면 현재 작업의 중요한 경로를 나타내는 관계들이 표시됩니다. 중요한 경로는 현재 작업의 그래프에서 실행 시간이 가장 긴 실행 체인으로 정의됩니다. 각 컴포넌트 작업의 실행 시간은 컴포넌트의 종료 시간(FinishedTime)과 시작 시간(StartTime)의 차(FinishedTime - StartTime)로 정의됩니다.

이 기능은 새로운 엔진 기능이므로 향후 최적화 과정에서 공식이 변경될 수 있습니다.

  1. 트레이스에 작업 데이터가 있으면 작업 하위 탭 이 표시됩니다. 이 탭을 채우려면 타이밍 뷰에서 간격을 선택합니다. 탭은 선택된 간격의 모든 작업을 표시하도록 업데이트됩니다. 탭은 포함된 타임 스탬프 옵션(생성, 실행, 예약, 시작, 종료, 완료 타임 스탬프)을 모두 표시합니다. 이 타임 스탬프들은 이전에 상대적(Relative to Previous) 으로 표시되는 것이 디폴트입니다. 이전 스테이지를 기준으로 한다는 뜻입니다. 예를 들어 예약 시간은 실행 시간을 기준으로 표시됩니다. 테이블에서 작업을 더블클릭하면 타이밍 뷰에서 타이밍 이벤트를 선택하여 선택되었을 때와 동일하게 관계들이 표시됩니다.

타이밍-이벤트의-관계

컨텍스트 전환

컨텍스트 전환은 Windows, XB1/XSX, PS4/PS5 플랫폼에서 지원됩니다.

  1. 컨텍스트 전환(ContextSwitch) 트레이스 채널은 명령줄에서 활성화할 수 있습니다.

    -trace=default,ContextSwitch

    Windows에서는 사용자 권한 설정에 따라 프로젝트 런타임이 ‘관리자 권한으로 실행'되어야 합니다.

  2. 언리얼 인사이트에서 트레이스 파일을 엽니다. 세션에서 컨텍스트 전환(ContextSwitch) 트레이스 이벤트가 활성화된 경우, 타이밍 인사이트(Timing Insights) 뷰에 다음 정보가 표시됩니다.

a) 추가적인 CPU 코어 트랙. 기록된 트레이스의 각 CPU 코어에 대해 하나씩, 각 CPU 코어에서 실행되는 스레드를 나타내는 타이밍 이벤트가 표시됩니다. ‘알 수 없음(Unknown)' 타이밍 이벤트는 다른 애플리케이션/프로세스 또는 OS의 스레드 실행을 나타냅니다.

b) 각 CPU 스레드의 헤더 라인에는 해당 스레드가 실행하는 코어를 나타내는 코어 넘버 이벤트가 있습니다. 스레드가 실행 중일 때와 선점되었을 때는 시간 범위가 하이라이트됩니다.

cpu-스레드

c) CPU/GPU 드롭다운 메뉴는 컨텍스트 전환과 관련된 추가 옵션을 표시합니다.

cpu-gpu-컨텍스트-메뉴

d) CPU 스레드 트랙의 ‘코어' 타이밍 이벤트 컨텍스트 메뉴에는 다음 추가 옵션이 표시됩니다.

코어-타이밍-이벤트-트랙

e) CPU 코어 트랙의 ‘스레드' 타이밍 이벤트 컨텍스트 메뉴에는 다음 추가 옵션이 표시됩니다.

스레드-타이밍-이벤트