유니티

유니티 - 프로파일링을 해보자 #1 Unity 프로파일러

근본넘치는개발자 2024. 12. 4. 23:50

2024.12.02 - [유니티/2D] - 유니티 - 스프라이트 아틀라스(Sprite Atlas)에 대해 알아보자

 

오늘은 프로파일러를 활용하여 프로파일 하는 법에 대해 정리 해보고자 합니다.

 

이전에 스프라이트 아틀라스에 대해 정리하면서 언급했었는데,

당시 강의 자료에서 이미지가 어떻게 그려지는지 프로파일러를 사용하여 보여주시더군요.

 

보면서 신기하기도 하고, 사용법을 익혀두면 좋겠다는 생각에  

프로파일러의 사용법과 언제 사용하는지 간단하게 작성해 봤습니다.

Unity 프로파일러 

Unity 프로파일러는 애플리케이션의 성능 정보를 알려주는 툴입니다.

 

보통 프로파일러로 얻은 정보를 활용하여

어느 부분에서 문제가 발생하고 있는지 파악하기 위한 용도로 사용되는 듯합니다.

(= 게임의 최적화를 위한 문제 파악 분석에 사용된다.)

 

기본적으로 프로파일러는 게임의 마지막 300 프레임을 기록하고 보관하며

모든 프레임에 대한 자세한 정보를 표시한다고 합니다.

 

찾아보니 환경 설정 창(메뉴: Edit > Preferences)에서

기록하는 프레임 수를 최대 2,000프레임까지 늘릴 수 있다고는 하는데

오버헤드와 메모리 사용량 문제로 그리 권장하는 방식은 아닌 것 같습니다.

 

사용법

Window - Analysis - Profiler 혹은 Ctrl + 7 로 켤 수 있습니다.

 

아래는 유니티 6버전 기준입니다.

버전마다 Analysis 구성이 약간 다를 수 있습니다만

Profiler는 그대로 사용 가능합니다.

 

 

 Profiler내부에 빨간 버튼을 활성화한 후

Play 버튼을 누르면 프로파일러가 실행 됩니다.

 

실행하고 나면 파형이라고 할까요? 

색깔별로 어떤 부분에서 문제가 발생하는지 한눈에 정보를 보여줍니다.

좌측에서 해당 색에 해당하는 정보가 어떤 것인지 확인할 수 있습니다.

Profiler Modules

 애플리케이션이 각 프레임에 소비하는 시간에 대한 요약 정보를 제공합니다.

화살표 토글을 통해서 모듈에서 보여줄 내용을 선택할 수도 있습니다.

 

해당하는 모듈을 누르면 하단에 창이 뜨고,

그곳에서 더 자세한 정보를 확인할 수 있습니다.

 

 

 

좌 - TimeLine , 우 - Hierarchy

 

Hierarchy에서 눈여겨봐야 할 부분은 

Editor Loop와 Player Loop 입니다.

 

Editor Loop는 말 그대로 에디터 상에서만 사용되는 거고,

Player Loop는 프로그래머가 직접 조작하는 부분들을 말합니다.

 

성능에 영향을 주는 것을 확인하려면 PlayerLoop를 확인하면 되겠죠?

 

Deep Profiler

Profiler 우측 상단에 Deep Profiler를 활성화 하면

스크립트 코드의 모든 부분을 프로파일링하고

모든 함수 호출(Unity API로의 첫 번째 호출 뎁스 포함)을 기록할 수 있습니다 .

 

애플리케이션 코드 중

가장 많은 시간을 소비하는 위치를 찾고자 할 때 사용하면 좋다고 하며,

리소스 소모가 커지므로 간단한 스크립팅을 사용하는 소규모 게임에 권장하는 듯 합니다.

 

대규모 게임에서 필요한 경우엔

직접 코드에 ProfilerMakers를 추가해 수동으로 체크하라고 하네요.

더 자세한 내용은 아래 참고 자료 링크 들어가 보시면 좋을 것 같습니다.

 

마무리 

오늘은 Unity 프로파일링 사용법에 대해 간단하게 정리해 보았습니다.

 

원래는 Memory 프로파일링까지 한 번에 정리를 하려고 했는데

설명해야 할 부분도 많고, 분량 조절 실패로

다음 글에 이어서 Memory Profiler를 정리해 보겠습니다.

 

참고한 자료

 

https://docs.unity3d.com/kr/2022.3/Manual/ProfilerWindow.html

 

프로파일러 창 - Unity 매뉴얼

Unity 프로파일러에 액세스하려면 Window > Analysis > Profiler 로 이동하거나 키보드 단축키 Ctrl+7 (macOS의 Command+7)을 사용하십시오.

docs.unity3d.com

https://docs.unity3d.com/kr/2022.3/Manual/performance-profiling-tools.html

 

프로파일링 툴 - Unity 매뉴얼

프로파일링은 애플리케이션의 성능을 측정하는 가장 좋은 방법입니다. 다양한 프로파일링 툴을 사용하여 메모리 사용량, CPU 성능, GPU 성능, 사용자 정의 스크립트를 포함하여 애플리케이션 요

docs.unity3d.com

 

https://docs.unity3d.com/kr/2022.3/ScriptReference/Unity.Profiling.ProfilerMarker.html

 

Unity.Profiling.ProfilerMarker - Unity 스크립팅 API

Performance marker used for profiling arbitrary code blocks.

docs.unity3d.com

 

 

https://youtu.be/xjsqv8nj0cw?si=0mCgUSfQJZHAmEi5