Unity Profiler 알아보기

김보근·2025년 3월 26일

Unity

목록 보기
105/113

Unity Profiler 알아보기

PlayerLoop

게임 루프 전체 실행 시간을 나타냄.

일반적으로 16.67ms(60FPS) 이하로 유지하는 것이 목표.

첫 프레임에서 시간이 길어지는 경우, 초기화 로직 최적화 필요.

GarbageCollector.CollectIncremental

점진적으로 GC 실행되면서 걸린 시간.

2~3ms 정도는 괜찮지만, 지속적으로 높거나 10ms 이상 튀면 최적화 필요.

new 남발, Instantiate() 반복 사용이 원인일 수 있음 → 오브젝트 풀링 적용 추천.

Rendering (Draw Calls & Batches)

SetPass Calls: 많으면 CPU 부하 증가 → Material Batching 최적화 필요.

Batches: 낮을수록 성능이 좋음 → Static Batching, Dynamic Batching, GPU Instancing 활용.

Physics (FixedUpdate 관련 체크)

Physics.Simulate() 시간이 길면 물리 연산 최적화 필요.

Rigidbody, Collider 개수 확인 → 너무 많으면 성능 저하.

Fixed Timestep 값을 조절해서 물리 연산 줄이기 가능.

Scripts (CPU Time)

특정 스크립트가 CPU 사용량을 많이 차지하면 최적화 필요.

Update()에서 불필요한 연산 반복되는지 확인.

Debug.Log() 남발하면 성능 저하될 수 있음 → 빌드 시 제거.

UI 관련 성능 체크

Canvas.Rebuild()가 자주 실행되면 UI 업데이트가 많다는 뜻 →

Canvas를 잘 나누거나, CanvasGroup.alpha 활용해서 성능 최적화.

Layout 관련 연산이 많으면 UI 업데이트 최적화 필요.

결론

프로파일을 볼 때 CPU 시간, GC, 렌더링, 물리, 스크립트, UI 관련 항목을 체크하는 게 중요하다.
프레임 시간이 16.67ms(60FPS 기준) 이상 길어지면, 어디에서 병목이 발생하는지 분석하고 최적화해야 함

profile
게임개발자꿈나무

0개의 댓글