Version: 2023.2
언어: 한국어
GPU 사용 프로파일러 모듈
메모리 프로파일러 모듈

Highlights Profiler 모듈

Highlights Profiler 모듈은 애플리케이션이 타겟 프레임 속도를 충족하는지와 애플리케이션의 성능이 CPU 또는 GPU에 의해 제한되는지에 대한 정보를 표시합니다. 애플리케이션이 CPU 바운드인지 GPU 바운드인지, 잠재적인 성능 문제를 어디서부터 조사해야 하는지 파악하는 데 도움이 될 수 있습니다.

Highlights Profiler 모듈
Highlights Profiler 모듈

이 모듈은 기본적으로 활성화되지 않습니다. Highlights Profiler 모듈을 활성화하려면 Profiler 창을 열어 Profiler Modules 드롭다운 메뉴를 선택하고 Highlights 체크박스를 토글합니다.

차트

Highlights 차트에는 애플리케이션의 타겟 프레임 속도를 초과한 모든 프레임에 플래그가 지정됩니다. 이 정보를 두 레인에 마커로 표시합니다. 상단 레인에는 CPU가 타겟 프레임 시간을 초과한 모든 프레임에 빨간색 마커를 표시합니다. 하단 레인에는 GPU가 타겟 프레임 시간을 초과한 모든 프레임에 노란색 마커를 표시합니다. 차트에서 프레임 위에 마우스를 가져가면 CPU 및 GPU 시간을 비롯하여 프레임에 대한 간략한 요약을 확인할 수 있습니다.

타겟 프레임 시간은 왼쪽에 있는 차트의 제목 영역에서 구성할 수 있습니다. 드롭다운에서 타겟 ‘초당 프레임’(FPS)을 선택하면 됩니다. 30, 60, 72와 같이 프리셋 중 하나를 사용하거나 Custom을 선택하여 직접 설정합니다. 이 설정은 프로파일링 중인 애플리케이션의 타겟 FPS와 일치해야 합니다.

이 차트 뷰를 사용하면 문제가 있는 프레임으로 쉽게 이동할 수 있을 뿐만 아니라 전체 캡처에서 애플리케이션의 CPU 또는 GPU 사용량이 어느 정도인지 파악할 수 있습니다.

세부 정보

Highlights 차트에서 프레임을 선택하면 모듈의 Details 뷰에 프레임에 대한 더 자세한 정보가 표시됩니다.

CPU 활성 시간GPU 시간은 타겟 프레임 시간을 기준으로 막대로 표시됩니다. 타겟 프레임 속도를 달성하려면 CPU 활성 시간과 GPU 시간을 타겟 프레임 시간보다 낮게 유지해야 합니다. CPU와 GPU가 각각 개별적으로 작업을 완료하는 데 전체 프레임 시간을 확보할 수 있는 이유는 Unity 엔진이 최적의 성능을 달성하기 위해 CPU와 GPU를 파이프라인화 또는 병렬화하기 때문입니다. 이 바를 클릭하면 각각 CPU 타임라인 또는 프레임 디버거가 열리고 성능 조사가 시작됩니다.

CPU 활성 시간

CPU 활성 시간은 프레임 내에서 CPU가 작업을 수행한 기간입니다. 이는 메인 스레드와 렌더 스레드 사이의 가장 긴 스레드 기간에서 해당 스레드가 대기한 시간을 빼고 계산됩니다.

메인 스레드에서 이는 (일부 시나리오의) WaitForTargetFPS 또는 Gfx.WaitForPresentOnGfxThread와 같은 스레드에서 실제 작업을 나타내지 않는 Vsync 관련 마커를 의미하며, 스레드의 ‘활성 시간’을 계산할 때 차감됩니다. 렌더 스레드에서 이는 스레드의 실제 작업을 나타내지 않는 Gfx.WaitForGfxCommandsFromMainThread 마커로 표시된 대로 커맨드를 기다리는 데 소요된 시간을 의미하며, 스레드의 ‘활성 시간’을 계산할 때 차감됩니다.

렌더 스레드가 메인 스레드보다 오래 걸렸을 때 CPU Usage 모듈의 Timeline 뷰에 표시되는 ‘CPU 시간’ 값보다 CPU 활성 시간이 더 길어질 수 있습니다. 이는 메인 스레드에서 Timeline 뷰에 프레임의 시작과 끝이 표시되기 때문입니다.

GPU 시간

GPU 시간은 GPU에 프레임에 대한 첫 번째 커맨드가 전송된 시점과 GPU가 해당 프레임에 대한 작업을 완료한 시점 사이의 기간입니다.

수행해야 할 다음 단계와 성과 조사를 시작할 수 있는 위치에 대한 지침은 오른쪽 섹션에서 확인할 수 있습니다. 예를 들어 아래에 표시된 CPU 바운드 캡처에서 모듈은 CPU 모듈의 타임라인에서 렌더 스레드를 조사하도록 명령하고 있습니다. 즉, CPU 활성 시간으로 표시된 것처럼 CPU에서 가장 오래 걸린 것은 렌더 스레드이므로 가장 먼저 조사해야 할 CPU의 병목 현상은 렌더 스레드입니다.

현재 프레임이 특히 렌더 스레드에서 CPU 바운드임을 표시하는 Highlights Profiler 모듈
현재 프레임이 특히 렌더 스레드에서 CPU 바운드임을 표시하는 Highlights Profiler 모듈
GPU 사용 프로파일러 모듈
메모리 프로파일러 모듈