무엇을 찾고 계신가요?
Hero background image

프로파일링 및 디버깅용 툴

이 웹페이지는 이해를 돕기 위해 기계 번역으로 제공됩니다. 기계 번역으로 제공되는 콘텐츠에 대한 정확도나 신뢰도는 보장되지 않습니다. 번역된 콘텐츠의 정확도에 관해 의문이 있는 경우 웹페이지의 공식 영어 원문을 참고해 주시기 바랍니다.

원활한 성능은 다양한 장치와 플레이어에게 도달하는 훌륭한 게임 경험을 만드는 데 필수적입니다. Unity는 Unity 개발자가 대상 플랫폼에서 사용할 수 있는 기본 프로파일링 도구와 함께 사용할 수 있는 프로파일링 및 메모리 관리 도구의 전체 세트를 제공합니다.

이 기사에서는 Unity와 대상 플랫폼에서 사용할 수 있는 프로파일링 및 디버깅 도구에 대한 개요를 제공합니다.

여기 있는 정보는 무료로 다운로드할 수 있는 Unity 게임 프로파일링에 대한 궁극적인 가이드 (Unity 6판), 에서 발췌한 것입니다. 이 전자책은 게임 개발, 프로파일링 및 최적화 분야의 외부 및 내부 Unity 전문가들이 공동으로 작성했습니다.

Unity와 네이티브 툴을 모두 사용하여 최고의 성과를 창출할 수 있습니다.

슬림하고 성능이 뛰어난 코드와 최적화된 메모리 사용은 저가 및 고가 장치에서 더 나은 사용자 경험으로 이어집니다. 이는 저가 장치에서 더 많은 사용자에게 도달하기 위해 열과 배터리 소비를 해결하는 것부터, 플레이어의 편안함 수준, 궁극적으로 더 높은 채택 및 유지율을 유도하는 요소에 이르기까지 모든 것에 적용됩니다. 배포 플랫폼 사양을 통과하는 데 필요할 수도 있습니다. 프로파일링은 탐정 작업과 같으며, 애플리케이션 성능이 저하되는 이유나 코드가 과도한 메모리를 할당하는 이유의 미스터리를 풀어냅니다.

프로파일링에서 가장 큰 이익은 프로젝트 개발 생애 주기 초기에 계획할 때 발생합니다. 이는 지속적인 능동적이고 반복적인 과정입니다. 게임을 출시하기 직전에만 프로파일링하는 것이 아니라, 조기에 자주 프로파일링함으로써, 당신과 팀은 프로젝트에 대한 '성능 서명'을 이해하고 설정할 수 있습니다. 예를 들어 성능이 급락하면, 문제가 발생한 시점을 쉽게 파악하고 신속하게 문제를 해결할 수 있습니다.

가장 정확한 프로파일링 결과는 대상 장치에서 빌드를 실행하고 프로파일링할 때 얻어지며, 각 대상 플랫폼의 하드웨어 특성을 파고들기 위해 플랫폼별 도구를 사용하는 것입니다.

Unity는 에디터 내부 및 하드웨어에서 코드 분석 및 최적화를 위해 자유롭고 강력한 프로파일링 툴들을 제공합니다. 주요 플랫폼 소유자가 제공하는 것과 같은 각 대상 플랫폼을 위해 설계된 여러 훌륭한 기본 프로파일링 도구도 있습니다. 두 가지를 조합하여 사용하면 모든 대상 장치에서 애플리케이션 성능에 대한 보다 전체적인 관점을 제공합니다.

Unity Profiler의 하이라이트 모듈
Profiler의 하이라이트 모듈은 게임이 설정된 목표 프레임 시간에 대해 어떻게 수행되고 있는지 이해하기 쉽게 만듭니다. 이 예에서는 목표 60fps에 도달하기 위해 CPU와 GPU 모두에서 많은 최적화 작업이 필요합니다.

Unity 프로파일링 툴

Unity의 프로파일링 도구는 에디터와 패키지 관리자를 통해 사용할 수 있습니다. 이 도구들은 Unity 프레임 디버거와 함께 전자책 Unity 게임 프로파일링에 대한 궁극적인 가이드 (Unity 6판)에서 더 자세히 다루어집니다.

- Unity 프로파일러는 Unity 에디터와 Play 모드 또는 개발 모드에서 장치에 연결된 상태에서 애플리케이션의 성능을 측정합니다.

- 프로파일링 코어 패키지는 Unity 프로파일러 캡처에 컨텍스트 정보를 추가하는 데 사용할 수 있는 API를 제공합니다.

- 메모리 프로파일러는 게임이 사용하는 메모리 양과 어떤 객체가 그것을 사용하는지에 대한 심층 분석을 제공합니다.

- 프로파일 분석기는 두 개의 프로파일링 데이터 세트를 나란히 비교하여 변경 사항이 애플리케이션 성능에 미치는 영향을 분석할 수 있게 해줍니다.

- 프로젝트 감사자는 프로젝트의 스크립트, 자산 및 코드에 대한 통찰력과 문제를 보고하며, 이 중 많은 부분이 성능과 관련이 있습니다.

Unity는 또한 프로파일링 도구 모음을 보완하는 여러 디버깅 도구를 제공합니다. 예를 들어, 렌더링 디버거의 디스플레이 통계 패널은 에디터가 연결되지 않은 개발 빌드에서 제한된 성능 수치 및 마커(CPU + GPU)를 볼 수 있게 해줍니다.

Unity의 프레임 디버거
프레임 디버거를 사용하여 식별된 오버드로우 발생 방법을 분석합니다.

네이티브 프로파일링 툴

안드로이드 / ARM

- 안드로이드 스튜디오: 최신 안드로이드 스튜디오는 이전 안드로이드 모니터 도구를 대체하는 새로운 안드로이드 프로파일러를 포함합니다. 이를 사용하여 안드로이드 장치의 하드웨어 리소스에 대한 실시간 데이터를 수집합니다.

- ARM 성능 스튜디오: ARM 하드웨어에서 실행되는 장치를 위해 게임을 프로파일링하고 디버깅하는 데 도움이 되는 도구 모음입니다.

- 스냅드래곤 프로파일러: 스냅드래곤 칩셋 장치 전용입니다. CPU, GPU, DSP, 메모리, 전력, 열 및 네트워크 데이터를 분석하여 성능 병목 현상을 찾고 수정하는 데 도움을 줍니다.

인텔

- 인텔 VTune: 이 도구 모음을 사용하여 인텔 플랫폼에서 성능 병목 현상을 신속하게 찾아 수정하십시오. 인텔 프로세서 전용입니다.

- 인텔 GPA 모음: 게임의 성능을 개선하기 위해 문제 영역을 신속하게 식별하는 데 도움이 되는 그래픽 중심 도구 모음입니다.

Xbox / PC
- PIX: PIX는 DirectX 12를 사용하는 Windows 및 Xbox 게임 개발자를 위한 성능 조정 및 디버깅 도구입니다. CPU 및 GPU 성능을 이해하고 분석하는 도구와 다양한 실시간 성능 카운터를 모니터링하는 도구가 포함되어 있습니다.

PC / 유니버설

- AMD μProf: AMD uProf는 AMD 하드웨어에서 실행되는 애플리케이션의 성능을 이해하고 프로파일링하기 위한 성능 분석 도구입니다.

- NVIDIA NSight: 개발자가 NVIDIA의 최신 비주얼 컴퓨팅 하드웨어를 사용하여 업계 최고의 소프트웨어를 구축, 디버깅, 프로파일링 및 개발할 수 있도록 하는 도구입니다.

- Samply: Samply는 Firefox 프로파일러를 UI로 사용하는 오픈 소스 명령줄 CPU 프로파일러입니다. macOS, Linux 및 Windows에서 작동합니다.

- Superluminal: Superluminal은 C++, Rust 및 .NET으로 작성된 Windows, Xbox One 및 PlayStation에서 애플리케이션을 프로파일링하는 것을 지원하는 고성능, 고주파 프로파일러입니다. 유료 제품이며 사용하려면 라이센스가 필요합니다. 시작하는 방법에 대한 간단한 소개는 토론 기사를 확인하세요.

PlayStation

- CPU 프로파일러 도구는 PlayStation 하드웨어에서 사용할 수 있습니다. 자세한 내용은 등록된 PlayStation® 개발자여야 하며, 여기서 시작하세요.

iOS

- Xcode Instruments 및 XCode 프레임 디버거: Instruments는 Xcode 도구 세트의 일부로 강력하고 유연한 성능 분석 및 테스트 도구입니다.

WebGL

- Firefox Profiler: Firefox Profiler를 사용하여 Unity WebGL 빌드(기타 등등)의 호출 스택을 파고들고 플레임 그래프를 볼 수 있습니다. 또한 프로파일링 캡처를 나란히 비교할 수 있는 도구도 있습니다.

- Chrome DevTools 성능: Unity WebGL 빌드를 프로파일링하는 데 사용할 수 있는 또 다른 웹 브라우저 도구입니다.

Arm의 Streamline 성능 분석기
Arm의 Streamline 성능 분석기에는 대상 Arm 하드웨어에서 라이브 프로파일링 세션 동안 캡처할 수 있는 풍부한 성능 카운터 정보가 포함되어 있습니다. 이는 메모리 대역폭 포화와 같은 성능 문제를 식별하는 데 유용합니다.

GPU 디버깅 및 프로파일링 도구

Unity Frame Debug 도구가 CPU에서 전송된 드로우 호출을 캡처하고 설명하는 동안, 다음 도구는 GPU가 이러한 명령을 수신할 때 수행하는 작업을 보여주는 데 도움이 될 수 있습니다.

일부는 플랫폼별이며 더 밀접한 플랫폼 통합을 제공합니다. 관심 있는 플랫폼과 관련된 도구를 살펴보세요:

- Arm Streamline: Arm의 성능 스튜디오 소프트웨어 제품군의 일부로, CPU 및 GPU의 저오버헤드 성능 측정에 중점을 둡니다.

- Arm Frame Advisor: Arm의 성능 스튜디오 소프트웨어 제품군의 일부로, 프레임 기반 API 프로파일링에 중점을 둡니다.

- RenderDoc: 데스크탑 및 모바일 플랫폼을 위한 GPU 디버거, 프레임 기반 API 디버깅에 중점을 둡니다.

- 인텔 GPA: 인텔 기반 플랫폼을 위한 그래픽 프로파일링

- 애플 프레임 캡처 디버깅 도구: 애플 플랫폼을 위한 GPU 디버깅

- 비주얼 스튜디오 그래픽 진단: 윈도우 또는 엑스박스와 같은 DirectX 기반 플랫폼에 대해 이와/또는 PIX를 선택하세요.

- NVIDIA Nsight 프레임 디버거: NVIDIA GPU를 위한 OpenGL 기반 프레임 디버거

- AMD 라데온 개발자 도구 모음: AMD GPU를 위한 GPU 프로파일러

- Xcode 프레임 디버거: iOS 및 macOS용입니다.

Unity 전자책
Unity 6을 위한 더 많은 팁

Unity 베스트 프랙티스 허브에서 고급 Unity 개발자 및 제작자를 위한 더 많은 베스트 프랙티스와 팁을 찾을 수 있습니다. 산업 전문가, Unity 엔지니어 및 기술 아티스트가 만든 30개 이상의 가이드 중에서 선택하여 Unity의 도구 세트 및 시스템을 효율적으로 개발하는 데 도움을 받을 수 있습니다.