언어:
페이지 정보
엔진 버전:
언리얼 엔진

프로파일러 툴 참고서

언리얼 엔진

Profiler_Header.png

Profiler 프로파일러는 언리얼 엔진 3 의 StatsViewer (통계 뷰어) 툴을 대신하는 것으로, 게임 데이터를 수집하고 추적하여 게임의 퍼포먼스를 모니터링하는 데 사용됩니다. 그 데이터는 게임을 느려지거나 버벅이게 만들 수도 있는 원인을 알아내는 데 쓸 수 있습니다.

퍼포먼스 튜닝이 처음이신 경우, 퍼포먼스와 프로파일링 문서를 먼저 참고해 주시기 바랍니다. 게임의 퍼포먼스를 모니터링하는 데 도움이 되는 팁을 여럿 찾아보실 수 있습니다.

프로파일러 켜기

프로파일러 를 켜고 데이터를 수집하는 데 사용되는 방법은 두 가지 있습니다:

  1. 라이브 연결

    • 게임에 -messaging 파라미터를 붙여 실행합니다 (예: UE4Editor-Win64-Debug.exe -messaging).

    • UFE 에 -messaging 파라미터를 붙여 실행합니다 (예: UnrealFrontend-Win64-Debug.exe -messaging).

    • 메뉴의 개발자 툴 섹션에서 세션 프론트엔드 를 선택한 다음 프로파일러 탭을 선택합니다.

  2. 기존에 갭처한 데이터 로드

    • 툴바의 프로파일러 탭에서 로드 버튼을 누른 다음 .ue4stats 파일을 선택합니다.

    • 탐색기나 다른 파일 매니저에서 통계 파일을 끌어 프로파일러 창에 놓습니다.

C:\Program Files\Unreal Engine\4.3\Engine\Binaries\Win64 폴더에서 UnrealFrontEnd.exe 를 독립형으로 실행시켜 세션 프론트엔드프로파일러 탭에 접근할 수도 있습니다. (주: 엔진 버전과 설치된 경로에 따라 위 부분은 다를 수 있습니다).

프로파일러 창

아래는 프로파일러 창과 UI 성분입니다:

이미지를 클릭하면 원래 크기로 보입니다.

  1. 연결된 세션세션 정보 창 - 통계 데이터를 구하는 세션으로 사용됩니다.

  2. 메인 툴바 창 - 전체적으로 작용하는 기본적인 기능이 들어있습니다.

  3. 데이터 그래프 전체 창 - 전체 통계에 대한 그래프 표현이 제공됩니다.

  4. 데이터 그래프 창 - 통계에 대한 그래프 표현입니다.

  5. 필터프리셋 창 - 모든 통계와 그룹이 들어있습니다 (사용자가 입맛대로 필터와 소트 적용 가능합니다).

  6. 이벤트 그래프 창 - 선택된 프레임(들)을 이벤트 그래프로 나타냅니다.

메인 툴바

Profiler_MainToolbar.png

아래는 메인 툴바 에 있는 각 기능에 대한 설명입니다:

옵션

설명

LoadIcon.png

통계 파일을 로드합니다.

SaveIcon.png

이 옵션은 아직 미구현 상태입니다.

DataPreviewIcon.png

라이브 연결 전용으로, 연결된 세션/클라이언트 통신이 가능합니다 (활성화되면 아이콘 불이 들어옵니다).

LivePreviewIcon.png

라이브 연결 전용으로, 데이터 그래프 뷰의 라이브 동기화가 가능합니다 (활성화되면 아이콘 불이 들어옵니다).

DataCaptureIcon.png

라이브 연결 전용으로, 클라이언트의 데이터를 캡처합니다. 캡처가 완료되면 캡처 데이터를 사용자 머신에 전송하겠냐고 묻는 창이 뜹니다. 데이터가 전송되고 나면, 통계를 로드하겠냐는 창이 뜹니다.

StatisticsIcon.png

통계 프로파일러 를 켭니다.

FPSChartIcon.png

FPS 차트 를 표시합니다 (이 옵션은 작업중입니다).

SettingsIcon.png

프로파일러 세팅을 엽니다: 단일 인스턴스 모드 / 이벤트 그래프에 합침 뷰모드 표시 옵션을 켜고/끕니다.

데이터 캡처 파일 저장 위치는 ...\UE4\Engine\Programs\UnrealFrontend\Saved\Profiling\UnrealStats\Received\... 입니다.

필터와 프리셋

FilterPresetsWindow.png

메인 툴바 에 있는 각 기능에 대한 설명은 아래와 같습니다:

옵션

설명

검색창 (1)

통계를 찾는 데 사용되며, 문자열을 입력한 후에는 일치되는 요소들이 통계/그룹 창에 강조됩니다.

그룹: (2)

통계 그룹을 묶는 방식이며, 기본적으로 그룹 이름별로 그룹을 짓흡니다.

소트: (3)

그룹 내 통계 소트 방식이며, 기본적으로 이름별로 소팅합니다.

통계/그룹 창 (4)

통계 및 그룹을 표시합니다. Icon_Arrow.png 아이콘을 클릭하면 각 그룹이 펼쳐집니다. Icon_Tag.png 아이콘을 택하면 통계 정보가 표시됩니다.

Icon_Hier.png

계층 통계, 다른 말로 범위 카운터 표시를 토글합니다.

Icon_Float.png

부동소수점, 더블 카운터, 누산기 표시를 토글합니다.

Icon_Int.png

정수, 워드 카운터, 누산기 표시를 토글합니다.

Icon_Mem.png

메모리 통계 표시를 토글합니다 (이 옵션은 작업중입니다).

통계 추적 방법

통계 추적 방법은 세 가지입니다:

  1. 선택된 통계에 더블클릭 하여 데이터 그래프 뷰 에 표시 추가/제거합니다.

  2. 통계/그룹 창 에서 데이터 그래프 뷰 로 드래그 앤 드롭합니다 (아래 그림 참고).

  3. 이벤트 그래프 뷰 에서 드래그 앤 드롭 합니다.

StatDragAndDrop.png

통계가 추적중인 경우, 다른 색으로 표시되며, 이름 옆에 "*" 심볼이 나타납니다.

StatsWindowStatTracked.png

또한, 그룹 이름 옆의 () 안에 있는 두 번째 숫자를 통해 그룹에 추적중인 통계 갯수를 확인할 수 있습니다.

MainWindowStatTracked.png

오디오 에 대한 윗 그림에서, 그룹에 11 항목이 있으며, 그 중 하나를 현재 추적중입니다.

데이터 그래프

데이터 그래프 뷰에는 추적된 통계가 전부 표시됩니다. 통계 추적을 중지하려면, 통계 텍스트 앞의 (X) 버튼을 누르면 됩니다.

ClickToStopTracking.png

통계 텍스트는 다음의 정보로 이루어져 있으며, 아래와 같이 나뉘어 있습니다:

StatDescriptionBreakdown.png

  1. (그룹 이름) - 통계의 그룹 이름입니다.

  2. 통계 이름 - 통계의 이름입니다.

  3. 실제 값 - 통계의 실제 값입니다.

  4. 최소 값 - 전체 캡처를 기반으로 한 최소 값입니다.

  5. 평균 값 - 전체 캡처를 기반으로 한 평균 값입니다.

  6. 최대 값 - 전체 캡처를 기반으로 한 최대 값입니다.

  7. 호출 - 이 통계로의 호출을 가진 프레임 백분율입니다 (계층 데이터 전용)

  8. 최소 값 - 전체 캡처를 기반으로 한 이 통계로의 최소 호출 수입니다 (계층 데이터 전용).

  9. 평균 값 - 전체 캡처를 기반으로 한 이 통계로의 평균 호출 수입니다 (계층 데이터 전용).

  10. 최대 값 - 전체 캡처를 기반으로 한 이 통계로의 최대 호출 수입니다 (계층 데이터 전용).

계층 데이터 전용 이라고 표시된 값은 계층 데이터에만 표시되는 값으로, 표시되지 않을 수도 있습니다.

데이터 그래프 축에 대한 설명은 아래와 같습니다:

  • 하단 - 처음부터의 시간을 표시하며, 0.0 부터 시작합니다.

  • 상단 - 처음부터의 프레임 번호를 나타내며, 0.0 부터 시작합니다.

  • 좌측 - 줌 레벨에 따른 시간에 대한 적응형 정보를 ms 단위로 나타냅니다. 마우스 휠 을 사용하면 게임에 미리정의된 축이 30, 60, 100FPS 로 셋 있는데, 각기 다른 색으로 표시됩니다.

  • 우측 - Float 나 Memory 같은 다른 통계에 대한 적응형 정보가 표시됩니다. 이 축에는 실수나 메모리 값은 시간 관련 통계보다 보통 크기 때문에 좌측의 것과 스케일이 다릅니다.

데이터 그래프 창에 우클릭 을 해도 부가 옵션이 있는 컨텍스트 메뉴가 나타납니다:

DataGraphContextMenu.png

  • 뷰 모드 - 현재는 인덱스 기반 모드만 지원됩니다 (시간 기반 모드는 프로파일러 의 멀티세션 모드에서만 사용가능하며, 기본적으로 꺼져있는 실험단계 기능입니다).

  • 모든 프레임 선택 - 모든 프레임을 선택하고 이벤트 그래프 뷰 를 업데이트합니다.

  • 라이브 프리뷰 - 이 옵션은 메인 툴바에 있는 것과 같습니다.

이벤트 그래프

EventGraphView.png

이벤트 그래프 뷰 는 다음과 같이 구성되어 있습니다:

  1. 제목 - 현재 연결된 세션 이름 또는 현재 로드된 통계 파일이 표시됩니다.

  2. 이벤트 그래프 툴바 - 이벤트 그래프 필터링 및 기타 기능에 사용됩니다.

  3. 함수 디테일 - 선택된 이벤트/함수의 디테일 뷰입니다.

  4. 메인 이벤트 그래프 - 선택된 프레임(들)의 계층 뷰입니다.

이벤트 그래프 툴바

EventGraphToolBar.png

아래는 이벤트 그래프 툴바 에 있는 각 기능에 대한 설명입니다:

옵션

설명

EG_Icon_OneFrame.png

데이터 그래프 에 한 프레임이 선택된 경우에만 켜집니다.

EG_Icon_Average.png

데이터 그래프 에 여러 프레임이 선택된 경우 기본으로 켜지며, 프레임별 평균 그래프입니다.

EG_Icon_Maximum.png

데이터 그래프 에 여러 프레임이 선택된 경우 켤 수 있으며, 프레임별 최고 그래프입니다.

EG_Icon_Hierarchical.png

메인 이벤트 그래프 의 콘텐츠를 계층 트리 뷰로 표시합니다.

EG_Icon_Inclusive.png

메인 이벤트 그래프 의 콘텐츠를 이벤트 일반 목록으로 표시하며, 포함 시간 순입니다.

EG_Icon_Inclusive2.png

메인 이벤트 그래프 의 콘텐츠를 이벤트 일반 목록으로 표시하며, 이벤트 이름 별로 통합된 포함 시간 순입니다.

EG_Icon_Exclusive.png

메인 이벤트 그래프 의 콘텐츠를 이벤트 일반 목록으로 표시하며, 제외 시간 순입니다.

EG_Icon_Exclusive2.png

메인 이벤트 그래프 의 콘텐츠를 이벤트 일반 목록으로 표시하며, 이벤트 이름 별로 통합된 제외 시간 순입니다.

EG_Icon_HistoryBack.png

액션 히스토리 뒤로 버튼입니다.

EG_Icon_HistoryForward.png

액션 히스토리 앞으로 버튼입니다.

EG_Icon_HistoryMenu.png

액션 히스토리 메뉴를 표시합니다.

EG_Icon_HotPath.png

포함 시간에 따라 선택된 이벤트에 대한 핫 패스(hot path)를 펼쳐, 포함 시간 내림차순으로 소팅합니다 (퍼포먼스가 가장 비싼 경로입니다).

함수 디테일

함수 디테일 에는 사용자가 선택한 함수/이벤트와 선택된 함수/이벤트를 실행하는 함수 호출 사이의 관계를 표시합니다. 이러한 관계는 백분율 값에 맞도록 스케일 적용된 버튼을 사용하여 표시됩니다.

사용자는 맨 위의 이벤트에서부터 차례로 내려가며 퍼포먼스에 문제가 되는 부분을 쉽게 찾을 수 있습니다. 함수 디테일 뷰는 메인 이벤트 그래프 와 양방향 동기화되어 있어, 새 함수를 선택하면 메인 이벤트 그래프 에도 그 함수가 선택됩니다.

함수 디테일 은 다음과 같은 요소로 구성되어 있습니다:

  • 함수 호출 - 선택된 함수를 호출한 함수를 표시합니다. 위젯의 크기는 백분율 값에 따라 스케일 조절됩니다.

  • 현재 함수 - 현재 메인 이벤트 그래프 이벤트에 선택된 이벤트/함수 입니다.

  • 호출된 함수 - 선택된 함수에 의해 호출된 함수입니다. 위젯의 크기는 백분율 값에 따라 스케일 조절됩니다.

    • IconCulled.png - 이것이 표시되면, 이벤트가 메인 이벤트 그래프 창에 컬링(선별)된 것입니다 (자세한 정보는 다음 섹션을 참고하세요).

    • IconFiltered.png - 이것이 표시되면, 이벤트가 메인 이벤트 그래프 창에 필터링된 것입니다 (자세한 정보는 다음 섹션을 참고하세요).

Icon_Tag.png 아이콘에 커서를 올리면 그 항목에 대한 부가 정보가 표시된다는 점 기억하세요.

메인 이벤트 그래프

MainEventGraphWindow.png

메인 이벤트 그래프 창에는 이벤트 실행 경로가 표시됩니다. 보통 이름에 "thread" 또는 "[0x1234]" 식의 스레드 번호 ID 로 나타냅니다.

메인 이벤트 그래프 를 통해 필터링, 컬링, 및 기타 여러가지 기능이 가능합니다. 이 기능은 아래와 같으며, 메인 이벤트 그래프 창에 우클릭 하면 뜨는 컨텍스트 메뉴에서 원하는 기능을 선택하면 됩니다.

EventGraphContextMenu.png

옵션

설명

선택

선택된 이벤트 이름을 표시합니다.

EG_Menu_Icon_Root.png

루트 설정 - 루트를 선택된 이벤트로 설정하고 계층 뷰로 전환합니다.

EG_Menu_Icon_Culling.png

이벤트 컬링 - 이벤트를 '열 이름' 에 따라 '값' 으로 컬링(선별)합니다. "포함 시간 (MS)" 열에만 가능합니다. 이 이벤트는 그래프에서 제거되며, 이 이벤트의 부모는 (IconCulled.png)(w:20 convert:false) 아이콘을 표시합니다. 쉬운 이동을 위해 사용자는 이 아이콘을 눌러 컬링된 이벤트를 복원할 수 있습니다. 컬링이 가능하지 않은 경우, 이 옵션은 회색으로 탈색됩니다.

EG_Menu_Icon_Filtering.png

이벤트 필터 - 이벤트를 '열 이름'에 따라 '값' 으로 필터링합니다. "포함 시간 (MS), 제외 시간 (MS), 호출" 열에만 가능합니다. 이 이벤트는 그래프에 회색으로 표시됩니다. 필터링이 가능하지 않은 경우, 이 옵션은 회색으로 탈색됩니다.

EG_Menu_Icon_Reset.png

디폴트로 리셋 - 선택된 이벤트 그래프에 대해, 루트, 컬링, 필터링 을 기본 상태로 되돌리고 액션 히스토리를 비웁니다.

EG_Menu_Icon_Expand.png

모두 펼침 - 모든 이벤트를 펼칩니다.

EG_Menu_Icon_Collapse.png

모두 접음 - 모든 이벤트를 접습니다.

EG_Menu_Icon_ExpandSelection.png

선택 펼침 - 선택된 이벤트와 자손을 펼칩니다.

EG_Menu_Icon_CollapseSelection.png

선택 접음 - 선택된 이벤트와 자손을 접습니다.

EG_Menu_Icon_ExpandThread.png

스레드 펼침 - 선택된 스레드와 자손을 펼칩니다.

EG_Menu_Icon_CollapseThread.png

스레드 접음 - 선택된 스레드와 자손을 접습니다.

EG_Menu_Icon_ExpandHotPath.png

핫 패스 펼침 - 선택된 이벤트에 대해, 포함 시간을 기반으로 한 핫 패스를 펼치고, 포함 시간 내림차순을 적용합니다 (가장 퍼포먼스가 비싼 경로입니다).

EG_Menu_Icon_HierarchicalView.png

계층 뷰로 표시 - 계층 뷰로 전환하고 선택된 이벤트를 펼칩니다.

EG_Menu_Icon_FlatInclusiveView.png

일반 포함 뷰로 표시 - 일반 포함 뷰로 전환하고 포함 시간 내림차순을 적용합니다.

EG_Menu_Icon_FlatInclusiveView2.png

일반 포함 합침으로 표시 - 일반 합침 뷰로 전환하고 포함 시간 내림차순을 적용합니다.

EG_Menu_Icon_FlatExclusiveView.png

일반 제외 뷰로 표시 - 일반 제외 뷰로 전환하고 제외 시간 오름차순을 적용합니다.

EG_Menu_Icon_FlatExclusiveCoalesced.png

일반 제외 합침으로 표시 - 일반 제외 합침 뷰로 전환하고 포함 시간 오름차순을 적용합니다.

EG_Menu_Icon_CopyToClipboard.png

클립보드로 복사 - 선택을 클립보드로 복사합니다.

EG_Menu_Icon_SelectStack.png

스택 선택 - 스택의 모든 이벤트를 선택합니다.

EG_Menu_Icon_SortBy.png

소트: - 소팅할 열과 모드를 선택할 수 있는 메뉴를 표시합니다.

EG_Menu_Icon_ViewColumn.png

열 보기: [가능한 열 목록] - 열 표시/숨기기가 가능한 메뉴를 표시합니다.

EG_Menu_Icon_ResetColumns.png

열 디폴트로 리셋: - 열을 기본 세팅으로 리셋합니다.