[영상 필기] 다양한 프로파일링 툴 소개
영상 링크
https://www.youtube.com/watch?v=Z4xoJeXsk2U
유니티에서 사용되는 프로파일러 툴의 종류와 사용방법에 관한 영상
다양한 프로파일러
유니티 내장 프로파일러
Unity Profiler
Profile Analyzer
Frame Debugger
Memory Profiler
외부 툴 : IOS
Xcode Instrument
Xcode GPU Profiling
윈도우 플랫폼 게임
PIX for Window
Physics Debug
- 프로파일링이라기 보다는 디버깅툴
- 충돌 검출 동작 여부 등을 확인 가능
Unity Profiler
- 에디터에서 프로파일링하는건 1차적인 거고, 빌드해서 디바이스랑 연결해서 프로파일링 하기를 권장함
- 빌드세팅 - Development Build 체크해야 원격 프로파일링 가능
- 빌드세팅 - Autoconnect Profiler 도 체크하고 빌드앤 런 하면 자동으로 붙는다.
물리요소는 직접 움직이지 말 것
- 프로파일러로 찍어보면 Physics.SyncTransform Change 가 발생하는 경우가 있다.
- transform.Translate 등으로 움직이면 C++ Engine 상의 위치값과 Physics 상의 위치값이 달라진다.
그런 경우 SyncTransform Change가 발생한다.
ProfilerMarker
프로파일러 마커를 사용하여 특정 구간을 프로파일러에서 체크 가능하다.
https://docs.unity3d.com/ScriptReference/Unity.Profiling.ProfilerMarker.html
Unity Profiler
- 왼쪽 상당의 Profiler Modules 에서 모듈을 토글 할 수 있는데,
모듈 중 UI를 체크하면 UI Batch를 확인 할 수 있다. 오히려 프레임 디버거에서 확인 불가능한 UI 디버거를 확인 가능하다.
- UI 쪽 최적화는 프레임 디버거 보다는 이쪽을 사용하자.
Gfx.WaitForPresent
CPU가 GPU를 기다릴 때 발생하는 이벤트.
이 값이 크다면 GPU병목이다.
PostLateUpdate.PlayerUpdateCanvases
- Graphic.OnRectTransformDimensionsChange
UI에서 막 스크롤해보면 위의 이벤트가 발생하면서 프레임이 떨어짐
이는 UI를 Rebuild 하는 과정에서 생기는 부하이다.
UI도 실은 메쉬로 되어있는 것이기 때문에 움직이면 하위에 있는 UI 메쉬들을 매 프레임 전부 다시 그려야 함
Profiler Analyzer
- 유니티 프로파일러를 보조해 주는 툴
- 프로파일러에서 캡처된 상태에서 창을 열고 Pull Data 하면 더 자세한 정보를 얻을 수 있다.
- 특정 두 시점의 데이터를 비교하는 것도 가능하다. 예를 들어 프레임이 정상일 때랑 부하가 걸릴 때 두 군데를 찍어서 비교하면 가장 차이가 많은 부분이 최적화 대상이다.
HP Bar
- UI로 빼는 방법도 있는데, 그냥 SortingLayer를 UI로 하나 만들고서 최상단으로 둬서 드로우 오더를 조정하는 방법으로 최적화가 가능하다.
- 게임에 따라 HP Bar의 크기가 유지되야 되는 경우 Canvas로, 아닌 경우 2D오브젝트의 Sortinglayer로 선택하면 될 듯.
Physics Debug
- 프로파일링이라기 보다는 디버깅툴
- 충돌 검출 동작 여부 등을 확인 가능
Memory Profiler
메모리 프로파일러도 역시 스냅샷 두 개를 비교하는 기능을 제공한다.
Xcode Instrument
iOS 기기를 연결한 상태에서 실행.
유니티쪽 프로파일러는 유니티 측에서 생성해 놓은 마커들만 볼 수 있는데,
이쪽은 cpp 레벨의 부하까지 볼 수 있다.
className _ MethodName _ UID 순으로 표시된다.
XCode GPU Profiler
화면 왼쪽에 FPS가 표시되지 않는 경우
상단 메뉴 Product - Scheme - Edit Scheme - Rum - Options - GPUFrameCapture - Metal
로 설정해야 보인다.
하단에 Capture GPU workload 눌러서 캡처로 볼 수 있다.
캡처가 완료되면 다양한 정보 확인 가능
PIX for Window
윈도우 게임 프로파일러.
사용하려면 윈도우, 그래픽카드에서 각각 개발자 모드를 켜야 한다.
윈도우는 윈도우 설정에서 개발자 모드 ON
그래픽카드는 NVIDIA 제어판 - 개발자 - GPU 성능 카운터 관리 - 액세스 옵션 선택 - 허용
빌드할 때 Direct3D12 켜야 한다 (Auto X)