이 사용법은 MicroProfiler를 사용하여 게임의 문제점을 찾고 근본 원인을 식별하는 방법을 보여줍니다. 게임을 다운로드하고, 스튜디오에서 파일 열기를 선택한 다음 따라 해보세요.
문제 식별
스튜디오에서 게임을 연 후, F5 또는 재생 버튼으로 테스트를 시작하세요.
프레임 속도가 괜찮은 듯 하지만 이 크기와 범위의 게임에 비해 부드럽지 않습니다. CtrlShiftF5 (⌘ShiftF5)를 눌러 성능 요약 오버레이를 표시합니다.

프레임 속도가 초당 60프레임(FPS) 이하라는 점에 유의하세요.
CtrlAltF6 (⌘⌥F6)를 눌러 MicroProfiler를 엽니다.

프레임 시간이 일관적임을 확인하세요 - 막대의 높이가 대체로 비슷하므로 프레임 속도가 낮은 원인은 매 프레임마다 실행되고 있다는 점입니다. 가끔씩 실행되어 프레임 시간 스파이크를 유발하는 것이 아닙니다.
CtrlP (⌘P)를 눌러 MicroProfiler를 일시 정지합니다. 키보드 단축키로 일시 정지하면 상세 모드가 열립니다.
그래프를 팬하려면 클릭하고 드래그하세요. 워커 쓰레드에서 특정 작업이 기본 쓰레드에 비해 처리 시간을 많이 사용하는 것처럼 보인다는 점에 유의하세요. RunService.Stepped 위로 마우스를 올려 얼마나 오랜 시간이 걸리는지 확인하세요.

타임라인의 쌓인 막대는 코드의 계층 구조를 나타내므로 낮은 층에서 계속 마우스를 올려 문제를 식별해 보세요.


LocalScript 레이블은 스크립트의 이름을 나타내고, Raycast 레이블은 문제가 레이캐스팅과 관련이 있을 수 있음을 나타냅니다.
문제 해결 레이블 생성
MicroProfiler가 시작점을 제공했으므로 문제 코드에 대한 문제를 해결할 수 있습니다.
플레이 테스트를 중단하고 탐색기 창에서 localscript로 필터링하여 파일을 찾으세요.

raycast에 대한 검색은 이 코드 부분이 게임의 성능 저하의 범인일 가능성이 높다는 것을 나타냅니다:
local RAYS_PER_SECOND = 1500local function onStepped()for _ = 1, RAYS_PER_SECOND dolocal startPosition = getRandomPosition()local endPosition = getRandomPosition()local direction = endPosition - startPositionWorkspace:Raycast(startPosition,endPosition)endendRunService.Stepped:Connect(onStepped)특히, 이 코드는 초당 1,500개의 레이(광선)를 랜덤 방향으로 발사하고 있음을 확인할 수 있습니다.
이 코드 부분이 렌더링 지연을 초래하고 있는지 확인하기 위해 함수의 내용을 debug.profilebegin()과 debug.profileend()로 감싸세요:
local function onStepped()debug.profilebegin("Raycast Spam")for _ = 1, RAYS_PER_SECOND dolocal startPosition = getRandomPosition()local endPosition = getRandomPosition()local direction = endPosition - startPositionWorkspace:Raycast(startPosition,endPosition)enddebug.profileend()end
문제 확인 및 수정
게임 테스트를 시작하고 MicroProfiler를 다시 엽니다.
MicroProfiler가 이제 사용자 지정 레이블을 표시하여 이 함수가 실제로 근본 원인임을 나타내는 것을 확인하세요.

플레이 테스트를 중단합니다.
onStepped() 함수와 RunService.Stepped:Connect(onStepped) 연결을 삭제하거나 주석 처리합니다.
게임 테스트를 다시 시작하고 성능 요약을 다시 확인합니다.

프레임 속도와 MicroProfiler 그래프에서 프레임 시간의 큰 향상 결과를 확인하세요.