Unity 프로파일러 - The Profiler Window

2022. 8. 26. 18:27Public/Unity

소개

프로파일링 도구는 게임의 성능에 대한 자세한 정보를 제공합니다. 게임에 낮은 프레임 속도 또는 높은 메모리 사용량과 같은 문제가 있는 경우 프로파일링 도구는 이러한 문제의 원인을 보여주고 문제를 해결하는 데 도움을 줄 수 있습니다.
프로파일러 창은 Unity에 내장된 강력한 프로파일링 도구입니다. 이 문서는 프로파일러 창의 용도와 사용 방법에 대한 안내입니다. 이 기사를 읽고 프로파일러 창의 레이아웃과 기능에 익숙해지면 프로파일러 창을 사용하여 다양한 유형의 성능 문제를 진단하는 방법을 배울 수 있습니다.
프로파일러 창은 게임의 여러 부분이 실행되는 방식에 대한 심층 정보를 제공합니다.

프로파일러 창을 사용하면 게임에서 메모리를 사용하는 방식, 다양한 작업에 CPU 시간이 얼마나 사용되는지, 물리 계산이 수행되는 빈도와 같은 게임 성능의 다양한 측면에 대해 알아볼 수 있습니다. 가장 중요한 것은 이 데이터를 사용하여 게임에서 성능 문제의 원인을 찾고 해결하려는 시도의 효율성을 측정하는 데 도움이 될 수 있다는 것입니다.
게임에 성능 문제가 있는 경우 해결하기 전에 성능 문제의 원인을 아는 것이 중요합니다. 다른 문제에는 다른 솔루션이 필요하기 때문입니다. 우리 프로젝트가 느리게 실행되고 있다면 문제의 실제 원인이 지나치게 복잡한 물리학이라면 그래픽 렌더링을 개선하려는 의미가 없습니다! 마찬가지로 성능 문제를 해결하려는 시도의 효율성을 측정하는 것이 중요합니다. 프로파일링 데이터의 효과적인 사용은 최적화와 단순히 항목을 변경하고 최고를 바라는 것의 차이입니다.



프로파일러 창의 레이아웃

프로파일러 창을 사용하여 게임에 대한 데이터를 수집하기 전에 프로파일러 창을 열고 레이아웃에 익숙해 지는것이 좋습니다.

 

Window > Analysis > Profiler

 

프로파일러 창은 프로파일링 데이터가 기록된 경우에만 정보를 표시합니다. 

프로파일러 창을 처음 열면 실행 중인 게임에서 프로파일링 데이터를 기록할 때까지 일부 섹션이 비어 있습니다.

 

 

 

 

프로파일러 창 왼쪽에 프로파일러 열이 표시됩니다. 각 프로파일러는 게임의 특정 측면에 대한 정보를 표시합니다. CPU 사용량, GPU 사용량, 렌더링, 메모리 사용량, 오디오, 물리 및 네트워킹에 대한 별도의 프로파일러가 있습니다.

 

 

프로파일링 데이터가 기록되면 프로파일러 창의 위쪽 절반에 시간 경과에 따른 각 프로파일러의 데이터가 표시됩니다. 성능은 시간이 지남에 따라 달라질 수 있으므로 둘 이상의 프레임에서 성능을 확인하는 것이 유용합니다. 일부 문제는 일정할 수 있고, 다른 문제는 단일 프레임에만 나타날 수 있으며, 다른 문제는 시간이 지남에 따라 점차 좋아지거나 나빠질 수 있습니다.

 

 

 

 

 

 

프로파일러 창의 아래쪽 절반에는 현재 선택된 데이터 프레임에 대한 현재 선택된 프로파일러의 자세한 정보가 표시됩니다.

여기에 표시되는 데이터 유형은 현재 선택한 프로파일러에 따라 다릅니다. 예를 들어, 메모리 사용량 프로파일러를 선택하면 이 영역에는 가장 많은 메모리를 사용하는 자산 및 사용된 총 메모리 양과 같은 정보가 표시됩니다. 렌더링 프로파일러를 선택하면 이 영역에 렌더링 중인 개체 수 또는 수행 중인 렌더링 작업 수에 대한 통계가 표시됩니다.


프로파일러는 많은 세부 정보를 제공하지만 프로파일링할 때마다 모든 정보를 사용할 필요는 없습니다. 사실, 우리는 보통 한두 개의 프로파일러만 보고 게임 프로파일링을 시작합니다. 예를 들어 느리게 실행되는 게임이 있는 경우 CPU 사용량 프로파일러를 확인하여 조사를 시작할 수 있습니다.

 

CPU 사용량 프로파일러는 게임의 어느 부분이 실행하는 데 CPU 시간이 가장 많이 걸리는지에 대한 개요를 제공합니다. 그 정보를 사용하여 어떤 다른 프로파일러를 살펴봐야 하는지 결정할 수 있습니다. 예를 들어 물리 기능을 실행하는 데 시간이 오래 걸린다고 판단되면 물리 프로파일러를 사용하여 게임의 물리 성능에 대한 자세한 정보를 수집합니다.


관심 없는 정보로 디스플레이가 복잡해지지 않도록 프로파일러를 숨기고 추가할 수 있습니다.

 

프로파일러는 데이터 손실 없이 언제든지 추가하거나 제거할 수 있습니다. 프로파일러를 추가하거나 제거하면 디스플레이에 해당 데이터가 표시되거나 숨겨지며 데이터는 지워지지 않습니다.

 

 

 

Controls

화면 상단의 막대에는 프로파일러 창에 대한 컨트롤이 포함되어 있습니다.

이러한 컨트롤을 사용하여 프로파일링을 시작 및 중지하고, 프로파일링 기능을 활성화 및 비활성화하고, 프로파일러가 수집한 데이터를 이동할 수 있습니다.
이러한 컨트롤의 일반적인 사용은 성능 문제를 캡처하기 위해 제 시간에 게임 프로파일링을 시작한 다음 원하는 데이터를 수집한 후 프로파일링을 중지하는 것입니다. 그런 다음 성능 문제를 보여주는 프레임에 도달할 때까지 타임라인 컨트롤을 사용하여 데이터를 단계별로 살펴봅니다. 해당 프레임의 데이터는 화면 하단에 표시됩니다.

 

 

 

프로파일러 창을 사용하여 게임에서 프로파일링 데이터 기록

이제 프로파일러 창의 레이아웃에 대해 더 많이 이해했으므로 이를 사용하여 게임에서 데이터를 기록하는 방법과 게임이 어떻게 수행되는지 이해하는 데 도움이 되도록 해당 데이터를 읽는 방법을 알아보겠습니다.
프로파일러 창을 사용하여 데이터를 기록할 때 약간의 성능 비용이 있음을 이해하는 것이 중요합니다. 이는 모든 프로파일링 도구에 공통적입니다. 약간의 오버헤드 없이 심층 프로파일링 데이터를 기록하고 표시하는 것은 불가능합니다. 이것이 게임 실행 방식에 큰 영향을 미치지는 않지만 프로파일러 창이 기록될 때 성능에 약간의 영향이 있을 수 있습니다.
두 가지 다른 방법으로 게임을 프로파일링할 수 있습니다. Unity 에디터 내에서 실행되는 동안 게임을 프로파일링하거나 Unity 에디터 외부에서 개발 빌드로 실행 중인 게임을 프로파일링할 수 있습니다. Unity 게임의 개발 빌드는 두 가지 면에서 일반 빌드와 다릅니다. 개발 빌드는 게임이 실행 중일 때 프로파일러 창에 연결할 수 있고 여기에는 디버깅을 활성화하는 파일이 포함되어 있습니다.
Unity 에디터 내에서 게임을 프로파일링하는 것보다 게임의 개발 빌드를 프로파일링하는 것이 거의 항상 가장 좋습니다. 여기에는 두 가지 이유가 있습니다. 첫째, 독립 실행형 개발 빌드의 성능 및 메모리 사용량 데이터는 Unity 에디터에서 게임을 프로파일링할 때보다 훨씬 정확합니다. 프로파일러 창은 Unity 에디터 자체의 데이터를 기록하므로 결과가 왜곡됩니다. 둘째, 가능하면 대상 하드웨어에서 게임을 테스트하는 것이 가장 좋습니다. 예를 들어 게임이 Android 게임이라면 Android 기기에서 테스트해야 합니다. 일부 성능 문제는 게임이 특정 하드웨어 또는 운영 체제에서 실행될 때만 나타날 수 있으므로 Unity 에디터에서만 테스트하면 게임의 문제를 알아차리지 못할 수 있습니다.
하지만 Unity 에디터에서 게임을 프로파일링하는 것이 유용할 때가 있습니다. 이것은 매우 정확한 결과가 필요하기 보다는 신속하게 광범위한 성능 감각을 얻는 데 더 관심이 있는 때입니다. 예를 들어 성능 문제의 원인이 되는 게임 개체를 찾기 위해 런타임에 많은 게임 개체를 활성화 및 비활성화할 수 있습니다. Unity 에디터에서 이러한 변경 사항을 테스트하는 것이 여러 빌드를 만드는 것보다 훨씬 빠릅니다. 문제가 있는 위치를 대략적으로 찾으면 개발 빌드를 프로파일링하여 문제를 해결하는 데 필요한 정확한 정보를 얻을 수 있습니다.

 

 

 

 

Unity  에디터 내(內) 프로파일링

Unity 에디터 내에서 실행 중인 게임의 프로파일링 데이터를 기록하려면 다음 단계를 따라야 합니다.

  • Unity에서 프로파일링 하려는 프로젝트를 엽니다.
  • 프로파일러 창을 엽니다.
  • 프로파일러 창 상단의 도구 섹션에서 기록(Recording모양)이 선택되어 있는지 확인합니다.
  • 플레이 모드로 들어갑니다.

이제 프로파일링 데이터가 수집되어 게임과 상호 작용할 때 실시간으로 표시됩니다.

 

내 게임 빌드 프로파일링

내 게임의 프로파일링 데이터를 대상 하드웨어에 기록하려면 게임의 개발 빌드를 만든 다음 프로파일러 창을 해당 빌드에 연결해야 합니다. 이를 수행하는 방법은 

대상 플랫폼에 따라 다릅니다.

 

Windows,OSX,Linux 및 WebGL에서 게임의 개발 빌드를 빌드하고 실행하려면 다음 단계를 따라야 합니다.

  • Unity에서 프로파일링하려는 프로젝트를 엽니다.
  • 프로파일러 창을 엽니다.
  • 프로파일러 창 상단의 도구 섹션에서 기록(Recording모양)이 선택되어 있는지 확인합니다.
  • 상단 메뉴(File>Building setting)에서 빌드 설정 창을 엽니다.
  • 개발 빌드 확인란이 활성화되어 있는지 확인합니다.
  • Autoconnect PRofiler 확인란이 활성화되어 있는지 확인합니다.
  • Build and Run을 클릭합니다.

 

게임은 대상 장치에서 실행됩니다. 게임이 실행 중일 때 프로파일링 데이터는 게임과 상호 작용할 때 Unity 에디터 내의 프로파일러 창에 실시간으로 표시됩니다.

 

 

 


iOS 또는 Android에서 개발 빌드 프로파일링

프로파일러 창을 iOS 또는 Android의 게임 개발 빌드에 연결하는 것은 조금 더 복잡합니다. 장치에 게임을 빌드한 다음 장치를 Unity 편집기에 연결해야 하기 때문입니다.
프로파일러 창을 iOS 및 Android의 게임 개발 빌드에 연결하기 위한 전체 단계별 지침은 Unity 매뉴얼의 이 페이지에서 찾을 수 있습니다.

유니티 메뉴얼

 

 

 

 

프로파일러 창을 사용하여 문제 진단

이제 프로파일러 창이 작동하는 방식을 이해했으므로 프로파일러 창을 사용하여 게임의 문제를 식별하고 이러한 문제를 해결하는 데 도움을 받을 수 있습니다.
게임이 느리게 실행되거나 끊기거나 멈추는 경우 이 문서에서는 프로파일러 창을 사용하여 이러한 문제의 원인을 찾는 방법을 보여줍니다.

 

 

Next 

'Public > Unity' 카테고리의 다른 글

커스텀 에디터  (0) 2022.11.11
Unity 프로파일러 - 프로파일러 창을 사용하여 성능 문제 진단  (1) 2022.08.29
최적화 - 메쉬(Mesh)  (0) 2022.08.24
최적화 - Texture  (0) 2022.08.24
VFX  (0) 2022.07.31