프로파일링 및 디버깅용 툴
모든 게임 제작자는 몰입도 높은 게임 경험을 만드는 데 원활한 성능이 필수적이라는 것을 알고 있으며, 이를 달성하려면 게임을 프로파일링해야 합니다.
Unity에서 사용할 수 있는 프로파일링 및 디버깅 도구와 대상 플랫폼에서 사용할 수 있는 도구에 대한 개요를 알아보세요.
여기에 있는 정보는 무료로 다운로드할 수 있는Unity 게임 프로파일링을 위한 궁극적인 가이드전자책에서 발췌한 것입니다. 이 전자책은 게임 개발, 프로파일링, 최적화 분야의 외부 및 내부 Unity 전문가가 제작했습니다.
프로파일링은 애플리케이션 성능이 저하되는 이유 또는 코드가 초과 메모리를 할당하는 이유에 대한 미스터리를 풀어내는 탐정 작업과 같습니다. 프로젝트 개발 수명주기 초기에 계획을 세울 때 프로파일링을 통해 가장 큰 이점을 얻을 수 있습니다. 이는 지속적인 사전 예방적이고 반복적인 프로세스입니다. 게임을 출시하기 직전이 아니라 일찍 그리고 자주 프로파일링함으로써 귀하와 귀하의 팀은 프로젝트의 "성능 특징"을 이해하고 설정할 수 있습니다. 예를 들어 성능이 급락하는 경우 문제가 발생하는 시점을 쉽게 파악하고 문제를 신속하게 해결할 수 있습니다.
가장 정확한 프로파일링 결과는 대상 장치에서 빌드를 실행하고 프로파일링하는 것뿐만 아니라 플랫폼별 도구를 사용하여 각 대상 플랫폼의 하드웨어 특성을 파헤치는 것에서도 나옵니다.
Unity는 에디터 내부 및 하드웨어에서 코드 분석 및 최적화를 위해 자유롭고 강력한 프로파일링 툴들을 제공합니다. Arm, Apple, Sony 및 Microsoft에서 제공하는 도구와 같이 각 대상 플랫폼에 맞게 설계된 여러 가지 훌륭한 기본 프로파일링 도구도 있습니다. 두 가지를 조합하여 사용하면 모든 대상 장치 전반에 걸쳐 애플리케이션 성능을 보다 전체적으로 볼 수 있습니다.
Unity의프로파일링 도구는Editor 및Package Manager에서 사용할 수 있습니다. 각 도구는 프로젝트의 다양한 부분을 프로파일링하는 데 특화되어 있습니다.
- Unity 프로파일러는프로젝트 성능을 측정하고 어떤 프로세스가 문제를 일으킬 수 있는지 식별하는 데 도움이 됩니다. 프로파일러는 오디오, 물리, 렌더링, 애니메이션 등 다양한 작업에 사용되는 CPU 시간과 같은 데이터를 수집하고 표시합니다. 이는 플레이 모드의 애플리케이션인 Unity 에디터의 성능을 측정하고 개발 모드에서 애플리케이션을 실행하는 장치에 연결합니다. 프로파일링을 시작하려면 이 필수 도구를 사용하세요. 시작하려면프로파일링에 대한 이 과정을확인하세요.
- 메모리 프로파일러는메모리 성능에 대한 심층 분석을 제공합니다. 메모리 사용량을 줄이면 충돌을 줄이고, 로딩 시간을 줄이고, 프로젝트가 이전 장치와 호환되도록 하는 데 도움이 됩니다. 메모리 프로파일러는 현재 프리뷰 버전이지만 Unity 2022 LTS에서 검증될 예정입니다.
- 프로필 분석기는Unity 프로파일러 프레임 세트에서 프레임과 마커 데이터를 모두 집계하고 시각화하여 여러 프레임에 걸쳐 해당 동작을 검사하는 데 도움을 줍니다. (이는 이미 Unity 프로파일러에서 사용할 수 있는 단일 프레임 분석을 보완합니다.) 또한 두 개의 프로파일링 데이터 세트를 비교하여 변경 사항이 애플리케이션 성능에 어떤 영향을 미치는지 확인할 수 있습니다.
- 프레임 디버거는 실행 중인 게임의 재생을 특정 프레임에 고정하고 해당 프레임을 렌더링하는 데 사용되는 개별 드로우 콜을 확인할 수 있습니다. 그리기 호출을 나열하는 것 외에도 디버거를 사용하면 한 번에 하나씩 단계별로 실행할 수 있으므로 그래픽 요소에서 장면이 어떻게 구성되는지 확인할 수 있습니다.
- 프로파일링 코어 패키지는Unity 프로파일러 캡처에 상황별 정보를 추가하기 위한 API를 제공합니다.
안드로이드/암
- 안드로이드 스튜디오: 최신 Android Studio에는 이전 Android 모니터 도구를 대체하는 새로운Android 프로파일러가포함되어 있습니다. 이를 사용하여 Android 장치의 하드웨어 리소스에 대한 실시간 데이터를 수집합니다.
- Arm 모바일 스튜디오 Arm 하드웨어를 실행하는 장치에 맞춰 게임을 매우 자세하게 프로파일링하고 디버깅하는 데 도움이 되는 도구 모음입니다.
- Snapdragon 프로파일러: 특히 Snapdragon 칩셋 장치에만 해당됩니다. CPU, GPU, DSP, 메모리, 전력, 열, 네트워크 데이터를 분석하여 성능 병목 현상을 찾아 해결하는 데 도움을 줍니다.
Intel
- 인텔 VTune: 이 도구 모음을 사용하여 Intel 플랫폼의 성능 병목 현상을 신속하게 찾아 해결하십시오. Intel 프로세서에만 해당됩니다.
- 인텔 GPA 제품군: 문제 영역을 빠르게 식별하여 게임 성능을 향상시키는 데 도움이 되는 그래픽 중심 도구 모음입니다.
엑스박스/윈도우
- PIX: PIX는 DirectX 12를 사용하는 Windows 및 Xbox 게임 개발자를 위한 성능 조정 및 디버깅 도구입니다. 여기에는 CPU 및 GPU 성능을 이해하고 분석할 뿐만 아니라 다양한 실시간 성능 카운터를 모니터링하는 도구가 포함되어 있습니다. Xbox 게임 개발에 PIX를 활용하는 방법에 대한 자세한 내용을 보려면 Xbox 개발자로등록하세요 .
PC / 유니버셜
- AMD μProf: AMD uProf는 AMD 하드웨어에서 실행되는 애플리케이션의 성능을 이해하고 프로파일링하기 위한 성능 분석 도구입니다.
- NVIDIA NSight: 개발자가 NVIDIA의 최신 비주얼 컴퓨팅 하드웨어를 사용하여 동급 최고의 소프트웨어를 구축, 디버깅, 프로파일링 및 개발할 수 있도록 지원하는 도구입니다.
- 초강력: Superluminal은 C++, Rust 및 .NET으로 작성된 Windows, Xbox One 및 PlayStation의 프로파일링 애플리케이션을 지원하는 고성능 고주파 프로파일러입니다. 하지만 유료 제품이므로 라이센스를 받아야 사용할 수 있습니다.
PlayStation
- PlayStation 하드웨어에서 CPU 프로파일러 도구를 사용할 수 있습니다. 자세한 내용을 보려면등록된 PlayStation® 개발자여야 합니다.
iOS
- Xcode 계측기 및 Xcode 프레임 디버거: Instruments는 Xcode 도구 세트의 일부인 강력하고 유연한 성능 분석 및 테스트 도구입니다.
WebGL
- Firefox 프로파일러: Firefox 프로파일러를 사용하여 호출 스택을 자세히 살펴보고 Unity WebGL 빌드에 대한 Flame 그래프를 확인하세요. 또한 프로파일링 캡처를 나란히 볼 수 있는 비교 도구도 제공합니다.
- Chrome DevTools 성능: Unity WebGL 빌드를 프로파일링하는 데 사용할 수 있는 또 다른 웹 브라우저 도구입니다.
Unity 프레임 디버거 도구는 CPU에서 전송된 드로우 콜을 캡처하고 설명하는 반면, 다음 도구는 GPU가 해당 명령을 수신할 때 수행하는 작업을 보여주는 데 도움이 될 수 있습니다.
일부는 플랫폼별로 다르며 보다 긴밀한 플랫폼 통합을 제공합니다. 관심 있는 플랫폼과 관련된 도구를 살펴보십시오.
- Arm 그래픽 분석기: Arm의 Mobile Studio 소프트웨어 제품군의 일부
- RenderDoc: 데스크탑 및 모바일 플랫폼용 GPU 디버거
- 인텔 GPA: Intel 기반 플랫폼을 위한 그래픽 프로파일링
- Apple 프레임 캡처 디버깅 도구: Apple 플랫폼용 GPU 디버깅
- Visual Studio 그래픽 진단: Windows 또는 Xbox와 같은 DirectX 기반 플랫폼의 경우 이 항목 및/또는 PIX를 선택하세요.
- NVIDIA Nsight 프레임 디버거: NVIDIA GPU용 OpenGL 기반 프레임 디버거
- AMD Radeon 개발자 도구 모음: AMD GPU용 GPU 프로파일러
- Xcode 프레임 디버거: iOS 및 macOS의 경우