Skip to content

Profiler Tools

JungSu Kim edited this page Jan 27, 2016 · 1 revision

Unity application profile tools

유니티 프로파일러(Unity Profiler)

  • CPU 사용량 영역

    • Total : 선택한 함수와 관련된 모든 함수의 사용률을 보여줌
    • Self : 선택한 함수에 한정된 사용률을 보여줌
    • Calls : 함수가 몇 번 호출됐는지 보여줌
    • GC Alloc : 가비지 컬렉션을 위해 할당한 메모리양을 보여줌
    • Time ms : 선택한 함수와 관련된 모든 함수의 수행 시간을 표시
    • Self ms : 함수의 수행 시간을 표시
    • Object : 함수가 속한 게임 오브젝트를 표시
  • GPU 사용량 영역

    • Total : 선택한 함수와 관련된 모든 함수의 사용률을 보여줌
    • DrawCalls : 선택한 함수에서 발생한 드로우 콜 횟수를 보여줌
    • GPU ms : 선택한 함수에서 발생한 GPU 수행 시간을 보여줌
    • Object : 선택한 함수와 관련된 게임 오브젝트를 보여줌
  • Rendering 영역

    • 드로우 콜 횟수(Draw Calls)
      • 드로우 콜이란 물체를 그리기 위해서 그래픽 API를 호출하는 작업.
      • 그래픽 API를 호출하는 작업은 부하가 큰 작업이므로 이를 최소화하는 것이 성능 향상을 가져옴
    • 삼각형 수(Tris)
      • 현재 프레임에서 사용하고 있는 삼각면의 수를 보여줌
    • 정점의 수(Verts)
      • 현재 프레임에서 사용하고 있는 정점의 수를 보여줌
    • 배치된 드로우 콜 수(Batched Draw Calls)
      • 드로우 콜의 횟수를 최소화하기 위해 같은 메시와 재질을 사용하는 물체들을 모아서 이들을 한 번의 드로우 콜로 그릴 수 있게 최적화를 수행함.
      • 이 항목은 같은 머티리얼을 사용해 절약된 드로우 콜 수치를 의미하며 이 수치가 높을수록 최적화나 설계가 잘돼 있음을 의미함.
    • 사용한 텍스처 수(Used Textures)
      • 현재 화면을 그리기 위해 사용된 텍스처와 이 텍스처들이 차지하는 메모리양을 보여줌
    • 렌더 텍스처 수(Render Textures)
      • 사용한 렌더 텍스처의 수와 크기, 그리고 현재 프레임에서 얼마나 많은 렌더 텍스처들이 교체(Switches) 됐는지를 보여줌.
      • 렌더 텍스처는 주로 포스트 이미지 이펙트에서 많이 사용됨.
    • 스크린(Screen)
      • 화면의 크기와 화면을 나타내는 데 사용하는 메모리의 양을 표시
    • 비디오 메모리 사용량(VRAM usage)
      • 현재 사용하고 있는 비디오 메모리의 양을 추정해 보여줌
    • 정점 버퍼의 수와 크기(VBO total)
      • 메시를 구성하는 기본 정보들의 집합을 정점 버퍼(Vertex Buffer Object)라고 하며, 물체의 수만큼 정점 버퍼가 만들어짐.
      • 앞의 숫자는 정점 버퍼의 개수를 나타내고, 뒤의 숫자는 비디오 카드 메모리에 저장된 정점 버퍼의 크기를 나타냄
    • 그림자 생성자의 수(Shadow Casters)
      • 그림자를 생성하는 물체의 수를 보여줌
    • 스킨드 메시의 개수(Visible Skinned Meshes)
      • 현재 보여지는 스킨드 메시렌더러 컴포넌트의 수를 나타냄
      • 스크닝 작업은 연산량이 많으므로 이 수치를 최대한 줄여야 함
    • 애니메이션 수(Animations)
      • 현재 동작하고 있는 애니메이션 수를 보여줌
  • Memory 영역

    • 씬과 에셋에서 각각 얼마만큼의 메모리들이 사용됐는지 보여줌
  • Audio 영역

    • Playing Sources
      • 선택한 프레임에서 동작하는 오디오 소스의 개수를 보여줌
    • Paused Sources
      • 선택한 프레임에서 잠시 중지된 오디오 소스의 개수를 보여줌
    • Audio Voices
      • 선택한 프레임에서 사용되는 소리의 수를 보여줌
    • Audio CPU Usage
      • 오디오 재생에 쓰인 CPU의 사용률을 보여줌
    • Audio Memory
      • 오디오 엔진에서 사용하는 전체 메모리양을 보여줌
    • Max Audio Memory Usage
      • 오디오 엔진에서 사용하는 최대 메모리양을 보여줌
  • Physics 영역

    • Active Rigidbodies
      • 활동 중인 리지드바디의 개수를 보여줌
    • Sleeping Rigidbodies
      • 휴면 중인 리지드바디의 개수를 보여줌
    • Number of Contacts
      • 충돌체 사이에 발생한 충돌점(Contact Point)의 개수를 보여줌
    • Static Colliders
      • 씬 내에 리지드바디가 없는 고정된 충돌체의 개수를 보여줌
    • Dynamic Colliders
      • 리지드바디를 가지고 움직이고 있는 충돌체의 개수를 보여줌
  • Internal Profiler

    • iOS, Android의 내장 프로파일러 설정을 통해서 보여지는 내용
    • cpu-player
      • 현재 엔진과 프로그램에서 사용한 CPU 시간을 보여줌.
      • 단위는 밀리초
    • cpu-ogles-drv
      • OpenGL/ES 라이브러리 호출에 사용한 CPU 시간을 보여줌
      • 드로우 콜과 렌더 상태(Render State) 변경 같은 CPU에서 GPU로 작업을 이동하기 전에 준비 과정에 소요된 시간을 나타냄
    • cpu-wait-gpu
      • GPU가 작업을 끝낼 때까지 CPU가 기다리는 시간을 보여줌
      • 이 수치가 높을수록 렌더링 작업 GPU의 성능에 비해 과도하게 설정된 것을 의미
      • 3보다 크면 이 수치를 낮추게 노력해야 함
    • cpu-present
      • GPU가 작업한 백 프레임 버퍼를 화면에 쓰는 프론트 버터로 변경하는데 걸리는 시간을 보여줌
    • frametime
      • 프레임 제작에 걸린 시간을 보여줌
    • draw-call
      • 드로우 콜이 발생한 횟수를 보여줌
    • tris
      • 렌더링에 사용된 삼각면의 개수를 보여줌
    • verts
      • 렌더링에 사용된 정점의 개수를 보여줌
    • batched
      • 배칭된 도로우 콜의 개수를 보여줌
    • physix
      • 물리 엔진이 사용된 시간을 나타냄
    • animation
      • 본 애니메이션에 사용된 시간을 나타냄
    • culling
      • 시야 절두체 컬링 작업에 소요된 시간을 나타냄
    • skinning
      • 스키닝 애니메이션 작업에 소요된 시간을 보여줌
    • batching
      • 배칭에 소요된 시간을 보여줌
    • render
      • 게임 오브젝트들을 렌더링하는 데 소요된 시간을 나타냄
    • fixed-update-count
      • 프레임 사이에 FixedUpdate 함수가 몇 번 수행됐는지 보여줌
    • update
      • Update 함수의 실행에 소요된 시간을 보여줌
    • fixedupdate
      • FixedUpdate 함수의 실행에 소요된 시간을 보여줌
      • FixedUpdate 함수는 기본으로 0.02초마다 설정되는 자주 실행되는 함수
      • 이 수치는 최대한 줄여야 함
    • coroutines
      • 코루틴의 실행에 소요된 시간을 보여줌
    • allocated heap
      • 가비지 컬렉터에 의해 할당된 메모리의 총량을 보여줌
    • used heap
      • 할당된 메모리에서 사용되고 있는 메모리 용량을 보여줌
    • max number of collection
      • 최근 30플레임 이내에 진행한 가비지 콜렉션의 횟수를 보여줌
    • collection total duration
      • 가비지 콜렉션에 소요된 시간을 보여줌

GPU Vendors Profiler

Android Studio Monitor

Xcode Instruments

Clone this wiki locally