게임 최적화에 얼마나 열정적이신가요? 그냥 게임 잘 돌아가기만하면 최적화는 별로 신경 쓸 필요 없다고 생각하시나요? 아니면 코드 한줄한줄 작성할때마다 어떻게 해야 성능이 좋아질까 계속 고민하면서 코드를 작성하시나요?
유니티에서는 게임 성능을 측정할 수 있는 유용한 도구 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 이 걸렸다고 나오네요.
'Unity & C#' 카테고리의 다른 글
[유니티] Destroy() vs. DestoryImmediate() 차이점은? (0) | 2022.07.07 |
---|---|
[유니티] 간단 실험 : for loop in an update vs. multiple updates (0) | 2022.07.06 |
[C#] Switch문을 사용한 Type Pattern Matching (0) | 2022.06.26 |
[c#] Indexer [인덱서] 활용해보기 (0) | 2022.05.08 |
CustomEditor 활용하기 - Inspector Button만들기 (0) | 2022.04.06 |