프로파일러는 프로파일러 마커에 명시적으로 래핑된 코드 타이밍만 프로파일링합니다. 여기에는 Unity의 네이티브 코드에서 스크립팅 코드로의 호출에 대한 첫 번째 호출 스택 뎁스가 포함됩니다(예: MonoBehaviour.Start, MonoBehaviour.Update 또는 유사 메서드).
스크립팅 코드의 자식 샘플로 시각화할 수 있는 유일한 샘플은 Unity의 API를 호출하는 샘플(해당 API가 계측된 경우) 또는 명시적 프로파일러 마커 계측이 있는 자체 코드입니다. 성능 오버헤드를 유발하는 대부분의 API 호출이 계측됩니다. 예를 들어 Camera.main API를 통해 메인 카메라에 액세스하면 FindMainCamera 샘플로 등록됩니다.
모든 함수 호출 관련 데이터를 확보하여 코드의 어느 부분이 애플리케이션의 성능에 영향을 미치는지 알아보려면 Deep Profile 설정을 사용하면 됩니다. Deep Profile 설정을 활성화하면 프로파일러가 프로파일러 계측을 모든 스크립트 메서드에 삽입하여 최소한 첫 번째 호출 스택 뎁스를 포함한 모든 함수 호출을 Unity API에 기록합니다.
딥 프로파일링은 많은 리소스와 메모리를 소모합니다. 따라서 프로파일링이 진행될 때는 애플리케이션 실행 속도가 상당히 느려집니다. 딥 프로파일링은 간단한 스크립팅이 있는 작은 게임에 가장 적합합니다. 복잡한 스크립트 코드를 사용하는 경우 애플리케이션이 딥 프로파일링을 사용하지 못할 수 있으며, 다수의 대규모 애플리케이션의 경우 딥 프로파일링으로 인해 Unity에 메모리가 부족해질 수 있습니다.
연결된 애플리케이션에서 성능 데이터를 수집하거나 Unity 에디터의 데이터를 수집하려는 경우 딥 프로파일링을 활성화하면 됩니다.
빌드된 애플리케이션에 대해 딥 프로파일링을 활성화하려면 다음 단계를 따르십시오.
에디터의 데이터를 수집할 때 세부 프로파일링을 활성화하는 방법은 다음과 같습니다.
이후 프로파일링 세션을 시작하면 프로파일러가 모든 함수 호출을 계측합니다.