Unity 매뉴얼: 스크립팅 API 가이드
이 문서는 Unity의 스크립팅 API에 대한 설명과 다양한 활용해의 예제를 제공합니다. 프로파일러 기능을 통해 애플리케이션의 성능을 최적화하는 방법을 다루고 있습니다.
프로파일러 개요
Unity의 프로파일러는 애플리케이션의 성능을 분석하는 도구입니다. 이 프로파일러를 사용하여 시간 소비에 대한 인사이트를 얻을 수 있습니다. 다음은 일반적으로 사용되는 프로파일러 마커에 대한 설명입니다.
마커 종류 | 설명 |
---|---|
메인 스레드 기본 마커 | 애플리케이션과 에디터 간의 시간을 명확히 구분합니다. |
스크립트 업데이트 마커 | 스크립트가 업데이트되는 시간을 기록합니다. |
렌더링 및 VSync 마커 | CPU가 GPU와 상호작용하는 시간 기록합니다. |
백 엔드 및 스크립팅 마커 | Mono 및 IL2CPP 스크립팅 백엔드 활동을 강조합니다. |
멀티스레드 마커 | CPU 주기를 소비하는 스레드 동기화를 기록합니다. |
물리 마커 | 물리 엔진의 성능 분석을 돕습니다. |
성능 경고 | 상기한 성능 관련 문제를 경고합니다. |
메인 스레드 기본 마커
메인 스레드 기본 마커는 애플리케이션에서 사용된 시간을 기록하는 데 사용됩니다. 이 마커를 활용하여 다음과 같은 작업을 수행할 수 있습니다:
- 애플리케이션 루프 분석:
PlayerLoop
마커를 통해 모든 샘플을 확인하고, 에디터 루프에 대한 효율성을 평가할 수 있습니다. - 성능 향상: 에디터 전용 마커를 사용하여 에디터의 작업 영향을 분석하고 성능을 향상시킬 수 있습니다.
스크립트 업데이트 마커
스크립트 업데이트 마커는 Unity의 업데이트 루프에서 실행되는 스크립트와 관련된 모든 샘플을 포함하고 있습니다. 이를 통해:
- 업데이트 구조 최적화:
BehaviourUpdate
와LateUpdate
마커를 사용하여 스크립트 업데이트의 성능을 조정합니다. - 코루틴 관리:
Coroutines
마커를 통해 코루틴의 지연 호출을 관리할 수 있습니다.
렌더링 및 VSync 마커
이 마커는 CPU와 GPU 간의 데이터 전송 시간을 기록합니다:
- 성능 모니터링:
WaitForTargetFPS
마커를 사용하여 CPU가 GPU를 기다리는 동안 소모한 시간 확인합니다. - 병목 현상 분석: 다양한
Gfx
마커를 통해 메인 스레드에서 발생한 대기 시간을 분석하고 병목 현상을 파악합니다.
백엔드 및 스크립팅 마커
백엔드 및 스크립팅 마커는 스크립팅 활동을 강조하여 가비지 수집과 관련된 문제를 진단하는 데 유용합니다. 이 마커를 활용하여:
- 가비지 수집 최적화:
GC.Alloc
와GC.Collect
마커를 확인하여 가비지 수집이 성능에 미치는 영향을 분석합니다. - 메모리 관리: 사용되지 않는 메모리를 줄이고 가비지 수집의 횟수를 최소화 합니다.
멀티스레드 마커
멀티스레드 마커는 CPU 주기를 소비하지 않고 스레드 처리에 관련된 활동을 기록합니다. 이를 사용하여:
- 스레드 동기화 성능 향상:
JobHandle.Complete
마커를 통해 수행 중인 작업의 동기화 시점을 기록합니다. - 그래픽 처리 분석: CPU 프로파일러를 활용하여 여러 스레드에서 발생하는 상황을 모니터링합니다.
물리 마커
물리 마커는 Physics 엔진의 성능을 최적화하는 데 도움을 줄 수 있습니다. 이를 통해:
- 물리 시뮬레이션 성능 분석:
Physics.FetchResults
마커로 물리 시뮬레이션 결과를 수집하여 성능을 분석합니다. - 물리 엔진 최적화: 각종 물리 작업을 사용하는 특정 샘플을 통해 최적화 기회를 찾습니다.
성능 경고
CPU 프로파일러는 특정 성능 문제를 자동으로 감지하고 경고합니다. 여기에는 다음과 같은 사항들이 포함됩니다:
경고 | 설명 |
---|---|
Animation.DestroyAnimationClip | 리소스 소비가 많은 메서드이므로 런타임 중 지양해야 합니다. |
AssetBundle.asset/allAssets | 메인 스레드가 대기하게 되는 문제가 발생할 수 있습니다. |
Rigidbody.SetKinematic | 자원 소모를 초래하는 비효율적인 작업입니다. |
프로파일러를 활용하면 Unity 프로젝트의 성능을 최적화하고 다양한 문제를 해결할 수 있습니다. 성능 경고와 분석 기능을 적절히 사용하여 더 나은 애플리케이션을 개발해보세요.
결론
Unity의 프로파일러는 성능을 분석하고 최적화하는 데 필수적인 도구입니다. 각 마커와 관련된 기능을 이해하고 활용하면, 더욱 효율적인 개발이 가능합니다. 다양한 예제와 분석을 통해 애플리케이션의 성능을 극대화할 수 있습니다.