Version: Unity 6.0 (6000.0)
언어 : 한국어
CPU 성능 데이터
CPU Usage Profiler 모듈 탐색

CPU Usage Profiler 모듈 소개

CPU Profiler 모듈을 사용하여 애플리케이션이 시간을 소비하는 위치에 대한 개요를 확인합니다.

CPU Usage Profiler 모듈은 애플리케이션이 시간을 소비하는 영역(예: 렌더링, 스크립트, 애니메이션)에 대한 개요를 제공합니다. 이 정보는 창 상단의 차트에 표시됩니다. Timeline에서 데이터를 검사할 개별 프레임을 선택하거나, 프로파일러 창 하단의 세부 정보 창에서 다양한 계층 구조 뷰를 선택할 수 있습니다.

뷰(Views)

CPU Usage Profiler 모듈은 Timeline 뷰 또는 다른 계층 구조 뷰에서 프로파일링 데이터를 표시합니다. 이용할 수 있는 값은 다음과 같습니다.

  • 타임라인
  • 계층 구조
  • Inverted Hierarchy
  • Raw Hierarchy

뷰를 변경하려면 프로파일러 창 하단의 드롭다운 뷰 선택자를 사용합니다.

CPU Usage Profiler 모듈의 프레임이 선택된 프로파일러 창. Timeline 뷰가 세부 정보 창에서 선택됩니다.
CPU Usage Profiler 모듈의 프레임이 선택된 프로파일러 창. Timeline 뷰가 세부 정보 창에서 선택됩니다.

타임라인 뷰

Timeline 뷰는 CPU Usage Profiler 모듈의 기본 뷰입니다. 여기에는 애플리케이션이 소비한 시간과 타이밍이 서로 어떻게 연결되는지에 대한 개요가 포함되어 있습니다. 자체 하위 섹션과 동일한 시간 축을 따라 모든 스레드의 성능 데이터를 표시합니다.

Timeline 뷰를 사용하여 여러 스레드의 활동이 병행 시 서로 어떻게 상관 관계를 맺는지 파악합니다. Timeline 뷰에는 애플리케이션이 다른 스레드(예: 잡 시스템의 워커 스레드)를 사용하는 정도도 표시됩니다. 또한 스레드 작업이 대기열에 추가되는 방법과 스레드가 대기 상태인지(대기 상태 샘플), 또는 다른 스레드나 잡이 끝날 때까지 기다리는지(x 샘플 대기)도 표시합니다.

계층 구조 뷰

계층 구조(Hierarchy) 뷰는 프로파일링 데이터를 한 번에 하나의 스레드씩 표시하며, 기본값은 메인 스레드입니다. 이 뷰는 샘플의 지속 시간만 표시하고, Timeline 뷰는 각 샘플이 발생한 시간을 표시합니다.

계층 구조 뷰는 프로파일링한 모든 샘플을 나열하고 공유 호출 스택과 프로파일러 마커 계층 구조를 기준으로 그룹화합니다. Raw Hierarchy 뷰는 샘플을 그룹화하지 않으므로 세분화된 수준으로 샘플을 살펴볼 때 적합합니다.

Inverted Hierarchy 뷰는 프로파일러 마커별로 샘플을 그룹화하고 반전된 샘플 스택으로 표시합니다. 계층 구조의 첫 번째 레벨에는 각 프로파일러 마커에 대한 항목이 표시됩니다. 트리의 각 자식 항목은 반전된 샘플 스택의 일부를 나타내며, 해당 데이터는 이 샘플 스택을 통해 집계된 부모 항목에 영향을 미친 시간 또는 힙 메모리의 양을 보여 줍니다.

Inverted Hierarchy 뷰는 성능에 미치는 영향이 적은 여러 인스턴스에 의해 발생하는 더 큰 성능 문제를 나타내는 데 유용합니다. Timeline 또는 Inverted가 아닌 계층 구조 뷰에서는 이러한 문제를 발견하기 어려울 수 있습니다.

관리되는 코드 호출 스택 및 할당 조사

프로파일러 마커는 프로파일러가 프로파일링 정보를 다른 시간적 및 계층 구조 뷰로 표시하고 구성하는 데 사용하는 일련의 샘플을 방출합니다. 프로파일러 창에 표시되는 모든 샘플은 샘플 스택의 일부입니다.

샘플 스택은 Unity가 모든 샘플을 특정 메서드에 연결하지 않고 모든 호출을 샘플로 기록하지 않기 때문에 메서드의 호출 스택과 다릅니다. 딥 프로파일링은 모든 함수 호출에 프로파일러 마커를 추가하지만 네이티브 코드에는 아무것도 추가하지 않으며 이러한 샘플을 기록하는 데는 많은 오버헤드가 발생합니다.

CPU Usage Profiler 모듈을 사용하여 전체 호출 스택을 검사해서 GC.Alloc, UnsafeUtility.Malloc, JobHandle.Complete가 방출하는 샘플을 확인할 수 있습니다. 이는 딥 프로파일링을 활성화하고 높은 오버헤드를 유발하지 않으면서 이러한 샘플이 발생한 위치를 추적하려는 경우 유용합니다. 호출 스택을 활성화하는 방법에 대한 자세한 내용은 전체 호출 스택 활성화를 참조하십시오.

관리되는 할당 조사

CPU Usage 프로파일러를 사용하여 Unity가 메모리 클린업을 수행한 위치를 조사할 수도 있습니다.

코드가 새 관리되는 오브젝트를 생성할 때마다 현재 메모리 힙에 맞지 않을 가능성이 있으며, Unity는 가비지 컬렉션을 수행합니다. 가비지 컬렉션은 모든 스레드를 일시 중지하고 관리되는 힙에서 사용되지 않는 메모리를 검색합니다. 이 프로세스는 오래 걸리며 프레임 속도를 방해할 수 있습니다. 관리되는 가비지 컬렉션은 프로파일러에서 GC.Collect 샘플로 표시되고 관리되는 할당은 GC.Alloc으로 표시됩니다.

가비지 컬렉터가 애플리케이션의 프레임 속도에 영향을 주지 않도록 하려면 애플리케이션이 실행되는 동안 GC.Alloc 값을 0으로 유지하고 힙 크기를 작게 유지하십시오. Timeline 뷰에서 GC.Alloc 샘플은 붉은 계열인 자홍색으로 컬러가 지정되어 표시되며 해당 할당의 크기를 보여 줍니다.

코드로 관리되는 할당이 발생하는 위치를 알아보려면 GC.Alloc에 대한 전체 호출 스택을 활성화할 수 있습니다. 관리되는 힙에 대한 자세한 내용은 관리되는 메모리에 대한 기술 자료를 참조하십시오.

추가 리소스

CPU 성능 데이터
CPU Usage Profiler 모듈 탐색
Copyright © 2023 Unity Technologies
优美缔软件(上海)有限公司 版权所有
"Unity"、Unity 徽标及其他 Unity 商标是 Unity Technologies 或其附属机构在美国及其他地区的商标或注册商标。其他名称或品牌是其各自所有者的商标。
公安部备案号:
31010902002961