Unity & C#

[유니티] Unity Profiler 사용하기

왼손잡이개발자 2022. 7. 5. 22:00

 

게임 최적화에 얼마나 열정적이신가요? 그냥 게임 잘 돌아가기만하면 최적화는 별로 신경 쓸 필요 없다고 생각하시나요? 아니면 코드 한줄한줄 작성할때마다 어떻게 해야 성능이 좋아질까 계속 고민하면서 코드를 작성하시나요?

유니티에서는 게임 성능을 측정할 수 있는 유용한 도구 Profiler를 제공하고 있습니다. 간단하게 Unity Profiler를 어떻게 사용하면 되는지 알아보도록 하겠습니다

 

아래의 스크린샷에서 보여주듯이 Profiler창은 Window -> Analysis -> Profiler 로 가서 열 수 있습니다. (또는 간편하게 Ctrl + 7 단축키를 사용해서도 열 수 있습니다) 

 

Profiler창을 열면 다음과 같이 나옵니다

빨간색 표시가 되어있는 항목은 각각 끄고 켜서 Profiler가 동작할때 보이게 또는 안 보이게 설정할 수 있습니다. 

 

Profiler에서 빨간색 녹화버튼이 켜진 상태로 유니티 에디터에서 실행을 시키면 Unity Profiler가 그래프를 그리며 분석 내용을 아래 하단에 (파란색으로 표시) 세부 내용들이 기록되게 됩니다.

 

저는 보통 Profiler를 사용할 때 코드의 자세한 분석을 위해 다음과 같이 세팅을 합니다

Deep Profile을 켜고 (초록색 화살표), 그리고 Show Full Scripting Method Names (노란색 화살표) 를 체크해서 스크립트 어느 부분에서 얼마만큼의 시간이 걸리고 등등 정보를 확인할 수 있습니다. 

 

다음은 Profiler를 활용해서 작성한 코드를 분석해본 결과입니다

Update에서 한 프레임에 Follwer.MoveTo() 가 500번 Call 이 있는데, 제가 Follwer.MoveTo() 함수를 Update에서 for loop로 500번 돌리고 있기때문에 500 Call로 나옵니다. 500번의 Call을 하는데 걸린 시간이 2.23ms 이 걸렸다고 나오네요.