전체 시스템에서 성능이라 처리량을 제한하는 구간 -> 시스템 전체 성능은 가장 느린 구간 하나가 결정한다.

 

병목이 아닌 곳을 최적화할 경우 전체 성능이 안 좋아진다. 렌더링이 병목일 때 AI 연산을 최적화해봤자 체감이 없다. 그래서 병목 현상이 일어나는 부분을 먼저 찾고 그 다음 고치는 순서가 절대 원칙이다.

 

병목 종류

CPU 병목  -> AI, 물리, 게임 로직 과부하 : GPU 대기 시간이 길다 ( UE5 Unreal Insights )

GPU 병목 -> 드로우콜, 셰이더 복잡도 : CPU 대기 시간이 길다 ( RenderDoc, GPU Profiler )

메모리 병목 -> 텍스처, 메시 과적재 : 로딩 길고 프레임 드랍 ( UE5 Memory Insights )

I/O 병목 -> 에셋 스트리밍 지연 : 팝인(Pop-in) 현상 ( 디스크 프로파일러 ) 

 

병목 해결 순서

1. 측정 ( Measure ) : 프로파일러로 실제 수치 확인

2. 발견 ( Identify ) : 어디서 시간을 제일 많이 쓰는가

3. 수정 ( Fix ) : 병목 구간만 타깃 최적화

4. 검증 ( Verify ) : 수정 후 수치 재측정

 

연결되는 개념들

프로파일러 ( Profiler ) : 병목을 찾는 도구. 수치로 보여주는데 UE5는 Unreal Insights가 핵심이다

암달의 법칙 ( Amdahl's Law ) : 병렬화해도 전체 성능 향상에는 한계가 있다는 법칙. 병목이 전체의 10%라면 그걸 완전히 없애도 전체는 10%밖에 안빨라진다.

핫 패스 ( Hot Path ) : 매 프레임, 매 틱처럼 자주 실행되는 코드 경로. 여기서 병목이 날 경우 임팩트가 크다.

 

항상 병목은 데이터와 수치로 접근해서 개선해야한다.

'Word' 카테고리의 다른 글

데이터 드리븐 ( Data-Driven Design )  (0) 2026.06.25
리텐션 ( Retention )  (0) 2026.06.25
크런치 ( Crunch ), 히트박스/헛박스 (Hitbox/Hurtbox)  (0) 2026.06.24
온보딩 ( Onboarding )  (0) 2026.06.24
상태 머신 ( State Machine ) FSM  (0) 2026.06.23

+ Recent posts