Quick Reference
Profile Analyzer는 CPU frame·thread·marker를 집계해 A/B를 비교하고, 같은 workload에서 평균 외 upper quartile·max도 확인합니다.
- 기준 문서는 Profile Analyzer 1.1.1입니다. Profile Analyzer는 Profiler의 CPU frame·thread·marker 데이터를 여러 frame 단위로 집계하고, 두 dataset을 나란히 비교하는 도구입니다.
- Compare는 같은 device, build, scene, warm-up, camera path, input, capture length가 맞을 때만 최적화 효과를 말해 줍니다.
- 평균이 내려가도 upper quartile, max, marker 분포가 나빠지면 “개선”으로 완료하지 않습니다. 결과를 만든 marker와 thread를 Profiler Timeline에서 다시 엽니다.
데이터와 Compare 설정
- Single view는 하나의 capture에서 frame, thread, marker의 분포를 봅니다. 먼저 spike frame 범위를 filter로 좁혀 어떤 marker가 variability를 만드는지 확인합니다.
- Compare view는 A/B dataset의 aggregated CPU 데이터를 비교합니다. 두 capture가 서로 다른 플레이 경로나 target 기기라면 marker 차이는 코드 변경이 아니라 workload 차이일 수 있습니다.
- Profile Analyzer의
.pdata는 분석 데이터입니다. 원본 Unity Profiler.data또는 player가 내보낸.raw도 보관해야 Timeline에서 특정 frame과 호출 경로를 다시 열 수 있습니다. - frame 범위를 자를 때 로딩, shader warm-up, pause, OS overlay 같은 구간을 A/B 양쪽에서 같은 규칙으로 제외하거나 포함합니다. 한쪽만 유리한 frame을 빼면 quartile과 분포 비교가 무의미해집니다.
결과 읽기
| 질문 | 먼저 볼 값 | 다음 확인 |
|---|---|---|
| 보통 frame이 나아졌는가 | median/mean | workload가 동일한지 |
| 끊김이 줄었는가 | upper quartile, max, histogram·box plot | spike frame의 marker |
| 특정 시스템이 바뀌었는가 | marker time/count | Profiler Timeline 호출 경로 |
| CPU 전체가 바뀌었는가 | thread summary | GPU/frame pacing이 아닌지 |
- marker time 감소와 marker count 증가는 다른 의미입니다. 한 번의 연산이 빨라졌는지, 호출 횟수가 줄었는지, 둘 다 바뀌었는지 분리해 읽습니다.
- Profile Analyzer는 CPU profile 분석을 보완합니다. GPU frame time, memory snapshot, frame debugger event는 각각 GPU Profiler, Memory Profiler, Frame Debugger에서 별도로 확인합니다.
- capture 길이가 너무 짧으면 희귀 hitch를 놓치고, 너무 길면 서로 다른 gameplay state가 섞입니다. 재현 가능한 핵심 loop를 충분히 반복할 길이로 정합니다.
자주 틀리는 부분
A/B 비교가 유의미하다는 것은 두 파일을 열었다는 뜻이 아닙니다. camera, enemy 수, cache warm 상태, VSync, device thermal state가 달라지면 한 marker의 ms 차이만으로 회귀 여부를 결정할 수 없습니다.
Profile Analyzer가 더 낮은 CPU median을 보여도 GPU 병목을 해결했다는 뜻은 아닙니다. 화면 해상도와 shader pass가 그대로라면 GPU frame time 분포와 frame pacing은 별도로 측정해야 합니다.
참고 링크
3 sources