타겟 릴리스 플랫폼에서 애플리케이션을 프로파일링하려면 타겟 기기를 네트워크에 연결하거나 케이블로 컴퓨터에 직접 연결하십시오. 또한 애플리케이션을 개발하는 동안 프로파일링 결과를 대략적으로 확인하기 위해 Unity 에디터에서 직접 애플리케이션을 프로파일링할 수도 있습니다.
애플리케이션은 개발 빌드로만 프로파일링할 수 있습니다. 이렇게 하려면 Build Settings (File > Build Settings)에서 애플리케이션의 타겟 플랫폼을 선택한 후 Development Build 설정을 활성화하십시오. 이 설정을 활성화하면 프로파일러와 관련된 두 개의 설정, Autoconnect to Profiler 와 Deep Profiling Support 를 이용할 수 있습니다.
Autoconnect Profiler 설정을 활성화하면 Unity 에디터는 빌드 프로세스 동안 해당 IP 주소를 빌드된 플레이어로 베이크합니다. 플레이어를 시작하면 에디터가 베이크된 IP 주소에 있는 프로파일러에 연결하려고 시도합니다.
또한 Deep Profiling Support 설정을 활성화하면 Unity는 빌드된 플레이어가 시작할 때 세부 프로파일링을 수행합니다. 이는 애플리케이션의 시작 시간을 세부 프로파일링할 때 유용하며, 빌드의 리소스 소모가 약간 더 증가합니다.
애플리케이션을 빌드하여 실행하면 프로파일러 창의 Attach to Player 드롭다운에 플레이어가 나타납니다. Attach to Player 드롭다운은 로컬 네트워크에서 실행 중인 모든 Unity 플레이어를 보여줍니다. 이러한 플레이어는 플레이어 타입, 또는 플레이어를 실행하는 호스트 이름을 기준으로 식별할 수 있습니다(예: iPhonePlayer (Toms iPhone)).
선택한 후 Record 를 클릭하면 애플리케이션에 대한 프로파일링 정보를 수집하기 시작합니다. 빌드 설정에서 Autoconnect to Profiler 를 활성화하면 Unity는 애플리케이션이 시작할 때 데이터를 자동으로 수집합니다.
애플리케이션이 실행 중인 동안 데이터를 연속으로 수집하려면 Player Settings (메뉴: Edit > Project Settings > Player > Resolution and Presentation)에서 Run In Background 설정을 활성화하십시오. 이 설정을 활성화하면 애플리케이션이 백그라운드에서 실행되도록 두더라도 프로파일러는 데이터를 계속 수집합니다. 이 설정을 비활성화하면 애플리케이션이 활성 창에서 실행 중일 때에만 데이터를 수집합니다.
프로파일러 창을 사용하여 에디터에서 애플리케이션을 실행하고 프로파일링하는 경우 타겟 플랫폼이 애플리케이션을 실행할 때의 대략적인 애플리케이션 동작을 결과로 보여줍니다. 플레이 모드는 에디터와 동일한 프로세스로 실행되므로 애플리케이션의 CPU, GPU 및 메모리 사용량 데이터를 Unity의 사용량 데이터와 완벽하게 분리할 수 없습니다. 이로 인해 결과 프로파일링 데이터가 더 왜곡됩니다.
더 나은 프로파일링 결과를 얻으려면 항상 타겟 디바이스에서 애플리케이션을 프로파일링해야 합니다. 기기에서 이미 식별한 문제에 대해 빠르게 반복 작업을 수행하려면 에디터에서만 프로파일링하십시오.
WebGL에서도 Unity 프로파일러를 사용할 수 있지만, 에디터를 통해 실행 중인 WebGL 플레이어에 연결할 수 없습니다. WebGL은 WebSocket을 커뮤니케이션에 사용하므로 브라우저 쪽에서 수신 연결을 허용하지 않습니다. 실행 중인 플레이어에 연결하려면 Build Settings (메뉴: File > Build Settings)의 Autoconnect Profiler 체크박스를 선택해야 합니다. Unity는 WebGL에 대한 드로우 콜을 프로파일링할 수 없습니다.
iOS 및 Android 기기 모두 네트워크를 통한 원격 프로파일링을 지원합니다. 방화벽을 사용하는 경우 방화벽의 아웃바운드 규칙에서 54998 - 55511 포트를 여십시오. Unity는 이 포트들을 원격 프로파일링에 사용합니다.
참고: 때때로 원격 프로파일링을 설정하면 Unity 에디터가 기기에 자동으로 연결되지 않을 수 있습니다. 이 경우 프로파일러 연결을 수동으로 초기화할 수 있습니다. 이렇게 하려면 프로파일러 창에서 Attach to Player 드롭다운 메뉴를 선택한 후 적절한 기기를 고르십시오.
또한 네트워크 또는 연결 문제를 피하기 위해 대상 기기를 컴퓨터에 직접 연결할 수도 있습니다.
iOS 기기에서는 원격 프로파일링을 활성화하려면 다음 절차를 따르십시오.
Android 기기는 WiFi 또는 Android 디버그 브리지(adb)를 통한 두 가지 원격 프로파일링 방식을 지원합니다.
WiFi로 프로파일링하려면 다음 절차를 따르십시오.
참고: 기기를 인식할 수 있으려면 Android 기기와 Unity 에디터를 실행하는 호스트 컴퓨터가 모두 동일한 서브넷에 있어야 합니다.
Android 디버그 브리지(adb) 프로파일링의 경우 다음 절차를 따르십시오.
Build & Run 을 선택하면 Unity 에디터는 애플리케이션을 위한 adb 터널을 자동으로 생성합니다. 다른 애플리케이션을 프로파일링하거나 adb 서버를 다시 시작하려면 이 터널을 수동으로 설정해야 합니다. 이렇게 하려면 터미널 창 또는 CMD 프롬프트를 열고 다음을 입력하십시오.
USB 케이블을 통해 에디터-Android 연결이 설정된 경우 필요
`adb forward tcp:34999 localabstract:Unity-{여기에 번들 식별자 삽입}
USB 케이블을 통해 Android-에디터 연결이 설정된 경우 필요
adb reverse tcp:34998 tcp:34999
Android 빌드에서 세부 프로파일링을 사용하려면 Android 플레이어 설정(메뉴: Edit > Project Settings > Player > Android > Other Settings)에서 Mono Scripting Backend 설정을 활성화한 후 다음을 입력하여 adb 커맨드를 통해 게임을 시작해야 합니다.
~$ adb shell am start -n {insert bundle identifier here}/com.unity3d.player.UnityPlayerActivity -e 'unity' '-deepprofiling'