최적화란?

퍼포먼스 최적화는 일회성 작업이 아니라 반복적인 과정이다.
가장 느린 병목 지점을 해결하면, 그 다음으로 느린 부분이 병목이 되고, 이를 다시 해결하는 과정을 반복하게 된다.
즉, 끝이 없는 두더지 잡기와 같다.

 

최적화 전 준비: 테스트 환경 정리

최적화를 시작하기 전에 테스트 환경을 정리하는 것이 매우 중요하다.
불필요한 요소들이 성능 측정에 영향을 줄 수 있기 때문이다.

예를 들어, 언리얼 엔진 에디터의 UI 자체가 성능에 영향을 줄 수 있다.
따라서 최적화 테스트는 다음과 같은 환경에서 진행하는 것이 좋다:

  • 패키지된 빌드를 사용하거나
  • 최소한 Standalone Mode에서 테스트

 

1프레임의 기준 시간

일반적인 게임은 60fps를 목표로 한다.
이는 1초(1000ms)를 60프레임으로 나눈 값인 약 16.66ms 안에 게임의 모든 연산이 끝나야 한다는 뜻이다.

  • 만약 특정 프레임이 10ms에 끝났다면?
    → 아직 6.66ms의 여유가 있으므로, 추가적인 로직이나 연출이 들어가도 성능상 문제가 없다.

이 기준 시간(16.66ms)은 퍼포먼스 분석의 핵심 기준점이 된다.


Stat Tools 3종 세트

1. Stat Unit

  • 병목 지점이 CPU Bound인지 GPU Bound인지 쉽게 확인 가능.
  • 명령어: ~ → stat unit

 

2. Stat FPS

  • 프레임 속도를 숫자로 확인 가능.
  • 명령어: ~ → stat fps

 

3. Stat Game

  • Game thread, Draw thread 등 상세한 게임 로직 실행 시간 확인 가능.
  • 명령어: ~ → stat game

 


Unreal Insights

  • 고급 프로파일링 툴
  • 퍼포먼스를 시스템적으로 분석하고 싶을 때 사용

 

Unreal Insights는 UE가 설치된 경로의 Engine > Binaries > Win64에서 UnrealInsights.exe를 눌러 실행할 수 있다

 

에디터를 실행 중이라면 위 그림과 같은 방법으로 쉽게 실행할 수 있다

 

두 방법으로 Unreal Insights를 실행시키면 위와 같은 창이 뜨게 된다

 

Unreal Insights 창을 띄운 채로 PIE(Play In Editor)를 실행하면, 게임의 실행 과정을 실시간으로 추적하고 세부적인 퍼포먼스 데이터를 수집하는 분석이 시작된다.

 

다음 글에서는 현재 진행 중인 프로젝트를 활용해 퍼포먼스를 개선해 나가는 과정을 공유드리겠습니다:)