네트워크 프로파일러

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

Windows
MacOS
Linux

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

프로파일링 세션 기록

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

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

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

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

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

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

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

네트워크 프로파일러는 /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

Welcome to the new Unreal Engine 4 Documentation site!

We're working on lots of new features including a feedback system so you can tell us how we are doing. It's not quite ready for use in the wild yet, so head over to the Documentation Feedback forum to tell us about this page or call out any issues you are encountering in the meantime.

We'll be sure to let you know when the new system is up and running.

Post Feedback