# 프로파일링 툴

> Reference for various profiling tools available for performance analysis.

애플리케이션의 성능을 측정하는 가장 좋은 방법은 [프로파일링](https://en.wikipedia.org/wiki/Profiling_\(computer_programming\))입니다. 다양한 프로파일링 툴을 사용하여 메모리 사용량, CPU 성능, GPU 성능, 커스텀 스크립트를 비롯하여 애플리케이션 요소에 문제가 발생할 수 있는 위치를 파악할 수 있습니다.

## Unity의 프로파일링 툴

Unity에는 애플리케이션의 성능을 측정하는 데 사용할 수 있는 몇 가지 프로파일링 툴이 있습니다.

* [Unity 프로파일러](/engine/6000.0/manual/analysis/profiler.md) Unity 에디터의 성능을 측정하거나, 플레이 모드에서 애플리케이션을 실행하거나, 개발 모드에서 애플리케이션을 실행하는 기기에 연결합니다.
* [Profiling Core 패키지](https://docs.unity3d.com/Packages/com.unity.profiling.core@latest): Unity 프로파일러 캡처에 컨텍스트 정보를 추가하는 데 사용할 수 있는 API를 제공합니다.
* [Memory Profiler](https://docs.unity3d.com/Packages/com.unity.memoryprofiler@latest): 심층적인 메모리 성능 분석을 제공하는 툴입니다.
* [프로파일 분석기](https://docs.unity3d.com/Packages/com.unity.performance.profile-analyzer@latest): 두 프로파일링 데이터 세트를 비교하여 변경 사항이 애플리케이션의 성능에 미치는 영향을 분석합니다.
* [프레임 디버거](/engine/6000.0/manual/rendering-and-post-processing/graphics-performance-profiling/profile-rendering/frame-debugger/frame-debugger.md): 애플리케이션의 그래픽 성능을 측정할 수 있는 방법을 제공하는 툴입니다.

### 타사 프로파일링 툴

Unity 프로파일러와 함께 플랫폼별 프로파일러를 사용하여 애플리케이션이 예상대로 실행되도록 합니다. 다음 목록에는 사용 가능한 프로파일링 툴의 예시가 나와 있습니다. Unity의 [로우레벨 네이티브 플러그인 프로파일러 API](/engine/6000.0/manual/scripting/compilation-and-code-reload/plug-ins/native-plugin-interface/low-level-native-plugin-profiler.md)를 사용하여 프로파일링 데이터를 타사 프로파일링 툴로 익스포트할 수도 있습니다.

* **Android:**

  * 일반적인 Android GPU 프로파일링: (지원하는 기기가 있는 경우) Google의 [Android GPU 인스펙터](https://developer.android.com/agi)입니다.
  * ARM CPU: ARM Mobile Studio로 [간소화](https://developer.arm.com/tools-and-software/embedded/arm-development-studio/components/streamline-performance-analyzer)합니다.
  * ARM Mali GPU: GPU 및 시스템 프로파일링에 [ARM Mobile Studio](https://developer.arm.com/solutions/hpc/hpc-software/categories/profiling-tools)의 툴을 사용합니다.
  * Imagination PowerVR GPU: GPU 프로파일링을 위한 [PVRTune](https://developer.imaginationtech.com/pvrtune/)
  * Qualcomm 칩: GPU 및 시스템 프로파일링을 위한 [Snapdragon 프로파일러](https://developer.qualcomm.com/software/snapdragon-profiler)

* **macOS 및 iOS**:

  * [Xcode](https://developer.apple.com/xcode/)
  * [Xcode GPU 프레임 캡처](https://developer.apple.com/documentation/metal/frame_capture_debugging_tools/)

* **PC:**

  * [AMD uProf](https://developer.amd.com/amd-uprof/)
  * [Intel GPA](https://www.intel.com/content/www/us/en/developer/tools/graphics-performance-analyzers/overview.html)
  * [NVIDIA Nsight Graphics](https://developer.nvidia.com/nsight-graphics)
  * [Windows용 PIX](https://devblogs.microsoft.com/pix/download/)
  * [Superluminal](https://superluminal.eu/)
  * [VTune](https://www.intel.com/content/www/us/en/developer/tools/oneapi/vtune-profiler.html)
  * [Windows 성능 분석 툴킷](https://docs.microsoft.com/en-us/windows-hardware/test/wpt/)
  * [Visual Studio 그래픽스 디버거](http://msdn.microsoft.com/en-us/library/hh315751.aspx)
  * [RenderDoc](https://github.com/baldurk/renderdoc)
  * [Radeon 개발자 툴 제품군](https://gpuopen.com/introducing-radeon-developer-tool-suite/)
  * [GPU 드라이버 인스트루먼트](https://developer.apple.com/library/ios/documentation/DeveloperTools/Conceptual/InstrumentsUserGuide/Instrument-GPUDriver.html)

이러한 툴은 프로젝트의 C++ 버전을 생성하기 위해 [IL2CPP](/engine/6000.0/manual/scripting/compilation-and-code-reload/backends/il2cpp.md)를 사용할 수 있는 플랫폼에서 가장 유용합니다. 이러한 네이티브 코드 버전은 Mono에서 실행할 때 사용할 수 없는 투명한 호출 스택과 고해상도 메서드 타이밍을 제공합니다.
