이 가이드는 MicroProfiler를 사용하여 경험의 문제적인 측면을 찾고 원인을 식별하는 방법을 보여줍니다. 경험을 다운로드하고, 파일에서 열기를 클릭하세요 Studio에서 스튜디오에서 따라가세요.
문제 식별
Studio에서 경험을 열고 F5 또는 플레이 버튼으로 테스트를 시작하십시오.
프레임 속도가 꽤 느리지만, 이 크기와 범위의 경험에 대해 원활하게 탐색하려면 탭의 보기 탭으로 이동하고 요약 아래에 있는 통계 아래에 클릭하십시오.
프레임 속도는 초당 60개 이하의 프레임(FPS)이므로 참고하세요.
Ctrl, Alt, F6을 모두 누른 상태에서 마이크로프로파일을 연다(⌘, 2>⌥2>, 5>F65>).
프레임 타임이 일관 하다는 점에 주의하십시오. — 바는 대략 같은 높이이므로 낮은 프레임 속도를 유발하는 원인이 있든 간혹 프레임 시간 스�파이크를 일으키는 원인이든 모든 프레임에서 실행되므로 프레임 속도가 느립니다.
키보드 단축키를 사용하여 CtrlP (⌘P)를 누르고 중지하면 2>세부 정보 모드2>를 엽니다.
클릭하고 드래그하여 그래프를 팬합니다. 작업자 스레드에서 특정 작업이 메인 스레드보다 많은 처리 시간을 사용하는 것처럼 보이는 경우 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초당 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 그래프에서 프레임 속도 및 해당 프레임 시간에 대한 엄청난 개선을 참조하십시오.