네트워크 프로파일러

실행시간에 캡처한 네트워크 트래픽 및 퍼포먼스 정보를 표시하는 툴입니다.

Windows
MacOS
Linux

네트워크 프로파일러는 게임 실행 와중에 엔진에서 기록할 수 있는 네트워크 트래픽 및 퍼포먼스 정보를 표시하는 데 사용할 수 있는 독립형 툴입니다. 멀티플레이 게임에서 주로 높은 대역폭을 사용하는 부분을 알아내는 데 좋은데, 전체 대역폭 사용량 중 각각의 액터, RPC, 프로퍼티가 얼마만큼 차지하는지를 알 수 있기 때문입니다.

프로파일링 세션 기록

네트워크 프로파일러를 사용하기 전, 분석할 수 있는 데이터를 조금 기록해 놔야합니다. 그러기 위해서는 stat tracking 기능이 켜진 엔진 버전을 사용해야 합니다. 즉 디버그 빌드거나, 디버그 빌드가 아닌 경우에는 에디터 빌드여야 (구체적으로 STATS 매크로를 0 이 아닌 값으로 정의하고 엔진을 컴파일해야) 합니다.

명령줄 인수로 "networkprofiler=true" 를 전달하면 엔진이 시작하자마자 기록되게 할 수 있으나, 실행시간에 다음과 같은 콘솔 명령을 사용해서도 네트워크 프로파일러 데이터 기록을 제어할 수 있습니다:

  • netprofile: 기록을 켜고 끄고 토글합니다.

  • netprofile enable: 이미 기록중이지 않으면 기록을 시작합니다.

  • netprofile disable: 현재 기록중이면 기록을 중지합니다.

데이터는 <project directory>/Saved/Profiling/<project name>-<timestamp>.nprof 에 저장됩니다. 이 폴더에 NetworkProfiling.tmp 라는 파일이 보일 수 있는데, 엔진이 데이터 수집 도중 사용한 임시 파일일 뿐입니다. 현재 프로파일링 세션이 중지되면, 이 파일의 이름이 위 이름 규칙에 맞게 변경된 뒤 독립형 툴에서 열 수 있는 상태가 됩니다.

네트워크 프로파일러 어플리케이션에서 프로파일 세션 보기

네트워크 프로파일러는 <UE install directory>/Engine/Binaries/DotNET/NetworkProfiler.exe 에 위치한 독립형 어플리케이션입니다.

창 상단에 "Open File" 버튼을 클릭한 뒤 .nprof 파일을 선택하면 그 안에 들어있는 데이터를 볼 수 있습니다.

image alt text

차트, 필터, 디테일 탭

기본적으로 "차트, 필터, 디테일" 탭이 선택됩니다. 이 탭의 다른 영역에 대한 설명은 다음과 같습니다.

image alt text

  1. 차트 뷰

  2. 스탯 리스트

  3. 서머리 뷰

  4. 프레임 디테일

  5. 필터

  6. 퍼포먼스 뷰

차트 뷰

메인 차트 뷰입니다. 다른 프로파일링 프로그램의 차트와 비슷하게, 시간에 따른 활성화된 통계 그래프를 표시합니다. 특정 프레임에 클릭하여 그 프레임에 연관된 데이터로 다른 뷰를 채울 수도 있고, 그래프를 클릭한 후 드래그하여 해당 영역으로 줌인, 그 시간대에 대한 요약을 볼 수도 있습니다.

스탯 리스트

네트워크 프로파일러에 트래킹된 모든 통계 목록입니다. 체크박스를 토글시키면 그래프의 해당 통계가 표시 또는 숨겨집니다. 대부분의 통계에 대해서, 원래 횟수, 초당 횟수, 바이트 수, 초당 바이트 수 표시를 선택할 수 있습니다.

서머리 뷰

차트에 선택된 기간에 대한 데이터 요약입니다. 원본 총합은 물론 초단위 정보도 표시합니다. 참고로 "나가는 대역폭" 은 "게임 소켓 전송 크기" 보다 큰데, 왜냐면 "나가는 대역폭" 에는 IP 및 UDP 헤더 크기도 추정하여 포함시키기 때문입니다.

프레임 디테일

이 뷰는 현재 선택된 프레임에 전송된 데이터를 분석하여 보여줍니다. 어느 액터, 프로퍼티, 원격 함수가 전송되었는가는 물론, 그 각각에 몇 바이트나 기여했는지 확인할 수 있습니다. 참고로 리플리케이티드 액터 및 RPC 둘 다 번치에 포함되어 있어서, "SEND BUNCH" 섹션의 "NumBytes" 필드에는 "SEND RPC" 와 "REPLICATE ACTOR" 섹션에서의 바이트가 포함됩니다. 최종적으로 "SOCKET SENT TO" 항목은 엔진이 나가는 소켓에 정확히 몇 바이트나 보냈는지를 알려줍니다. 또한 참고로 표준 UDP 패킷 오버헤드는 여기에 포함되지 않습니다.

필터

액터, 프로퍼티, RPC 에 대한 필터를 입력하고 "필터 적용" 버튼을 클릭하면, 해당 액터, 프로퍼티, RPC 중 필터 칸에 입력된 텍스트가 포함된 것에만 관련있는 데이터가 표시되도록 그래프를 업데이트합니다. 필터 적용 이후 그래프에서 한 프레임 또는 프레임 범위를 선택하면, 서머리 및 프레임 디테일 뷰의 데이터에도 각기 필터가 적용됩니다.

퍼포먼스 뷰

그래프에 단일 프레임이 선택되어 있는 동안, 이 뷰는 해당 프레임 도중 리플리케이트된 액터 유형 목록을 표시하며, 리플리케이션에 걸린 CPU 시간별로 정렬됩니다. 액터에 연관된 리플리케이티드 프로퍼티가 있는 경우, 그 액터에 대한 트리 뷰를 펼치면 각 프로퍼티가 표시됩니다. 액터의 경우, 수치의 첫 열은 해당 액터에 대한 CPU 리플리케이션 시간이 밀리초 단위로 표시됩니다. 둘째 열은 번치에 액터를 나타내는 데 사용된 바이트 수, 셋째 열은 현재 프레임 도중 리플리케이트된 주어진 유형의 액터 수입니다. 프로퍼티 행의 경우, 첫 열은 해당 프로퍼티에 사용된 바이트 수, 둘째 열은 해당 액터에 대해 주어진 이름의 프로퍼티가 얼마나 리플리케이트되었나를 표시합니다.

액터 탭, 프로퍼티 탭, RPC 탭

image alt text

이 탭 각각은 전체 프로파일링 세션에 대해 각자의 리플리케이션 데이터를 요약해 표시합니다. 이 탭들에 표시되는 데이터는 "차트, 필터, 디테일" 탭의 차트에 선택된 기간 또는 현재 프레임에 영향받지 않습니다.

탭에는 액터, 프로퍼티, RPC 목록이 각각 표시됩니다. "총 크기" 및 "평균 크기" 열은 특정 항목에 대해 필요한 대역폭 양이 표시되며, "수" 열은 프로파일링 세션 도중 특정 항목이 몇 회나 리플리케이트되었나를 나타냅니다. 열 제목줄을 클릭하면 해당 열의 오름차순 또는 내림차순 정렬을 토글시킬 수 있습니다.

서버 및 클라이언트 고려사항

프로파일링 데이터의 기록은 클라이언트와 서버 양쪽에서 가능합니다. 하지만 서버만이 액터와 그 프로퍼티를 리플리케이트하므로, 클라이언트에서 기록된 프로파일을 볼 때는 해당 클라이언트에서 전송된 RPC 에 대한 상세 데이터만 확인할 수 있게 됩니다.

Select Skin
Light
Dark

새로운 언리얼 엔진 4 문서 사이트에 오신 것을 환영합니다!

문서 사이트에 대한 의견을 모을 수 있는 피드백 시스템을 포함해서 여러가지 새로운 기능을 준비하고 있습니다. 아래 Documentation Feedback 포럼(영문) 또는 언리얼 엔진 네이버 공식 카페(한글) 중 편하신 곳에 의견이나 문제점을 알려 주세요.

새 시스템이 준비되면 알려 드리겠습니다.

네이버 카페
공식 포럼