
해당 영상을 보며 까먹지 않게 내용을 정리한 글이다.
이분이 정리하신 노션 페이지도 있다.
1. 프로파일링 전반 (Profiling in general)
1.1 프레임 예산 (Frame budget)
- CPU와 GPU 모두 16.66ms (60fps), 33.33ms (30fps)의 프레임 예산이 있다.
- 콘솔일 경우는 거의 대부분의 예산을 다 소모해도 된다. (HW도 알고있고 팬도 잘돌아감)
- PC 일경우 조금 여유가 필요하다. (하드웨어 자동탐지 기능을 넣거나 디폴트값을 여유롭게 설정)
- 모바일일 경우에는 열 스로틀링을 생각해 더 많은 여유를 가져야한다. (팬이 없어 과열됨)
1.2 언제 최적화를 해야할까? (When do I optimize)
- 성급한 최적화를 하지말지만 개발 중에 퍼포먼스를 생각하며 개발을 하여하한다.
- 코드의 가독성을 유지하면서
- 타겟 플랫폼에서 60fps가 유지되면? 거기서 끝!
- 콘텐츠의 최적화는 언제? -> 프로파일러에 표시될 때
1.3 실용적인 최적화 (Practical optimization)
- 프레임 시간에 도달하지 못할 때만 최적화 혹은 모바일이어서 약간 더 여유가 필요할 때
- 보통은 가장 쉬운 것부터 (최소한의 노력으로 큰효 과를 얻을 수 있는 것부터)
- 프로파일러를 열고 눈에 띄는 것들을 출시 전까지 반복
- What, Why and How 를 생각해라
What
Why
How
2. 언리얼 엔진에서의 프로파일링 (Profiling in Unreal Engine)
- Tools -> Run Unreal insights 혹은 엔진 바이너리 옆에 위치 (독립형 실행파일임)
- 인사이트가 실행중일때 게임을 실행하면 됨
- -trace 옵션으로 디폴트 검사 채널을 오버라이드 가능 (디폴트: cpu, frames, log, bookmakrs)
- 다른 컴퓨터로 트래이스를 할 경우 -tracehost 파라미터 사용
2.2 프로파일 GPU (ProfileGPU)
- GPU를 프로파일링 하려면 캡쳐를 진행해야 함, ProfileGPU라는 툴을 제공
- Ctrl + Shift + Comma(,) 혹은 콘솔커맨드 'ProfileGPU)
- 현재 프레임을 프로파일링
- 에디터에 있는 경우 GPU 시각화 툴이 열림, 아닌 경우 콘솔에 표시
3. 실용적인 사례 (Practical examples)
3.1 낮은 에디터 프레임레이트 (Low Editor FrameRate)
- FPS표시 (콘솔에 stat fps 혹은 에디터 메뉴에 있음)
- stat unit 명령어를 사용해 CPU, GPU 등 어떤 것이 느린지 확인 가능
3.2 작은 액터, 큰 멈춤 (Tiny Actor, Huge Hitch)