마이크로프로파일러 는 Roblox Studio 및 Roblox 클라이언트에서 사용할 수 있는 성능 최적화 및 문제 해결 도구입니다.그것은 태스크 스케줄러 태그라고 불리는 상세한 일정 정보를 제공합니다 태그 .
- 일반 태스크 목록은 태그 참조에 참조하십시오.
- MicroProfiler를 사용하여 성능 문제를 식별하는 단계별 예제는 MicroProfiler 가이드에 참조하십시오.
마이크로프로파일러 기본 사항
마이크로프로파일러를 열려면 Studio 또는 클라이언트에서 CtrlAltF6 ( ⌘⌥F6 )을 누르십시오.클라이언트에서 설정 메뉴를 사용할 수도 있습니다.
열리면 3D 뷰포트의 상단에 메뉴 바가 표시됩니다.기본 모드에서 이동 막대 그래프는 작업 일정기의 각 프레임에 사용된 시간을 표시합니다.

일반적으로 바는 그래프의 중간 부근에 있어야 하지만, 갑작스러운 급증(값의 급격한 증가)을 볼 수도 있습니다.스파이크는 작업을 수행하는 데 더 많은 시간이 걸렸다는 것을 나타내며, 일반적으로 작업량이 증가했기 때문입니다.예를 인스턴스, 많은 이동 부품을 생성하려면 물리 시뮬레이션에서 더 많은 작업이 필요하며, 이에 따라 이동 및 부품 접촉을 처리하는 데 더 많은 시간이 필요합니다.다음 이미지에서는 스파이크의 예를 보여줍니다:

프레임 녹화를 일시 중지하려면 CtrlP ( ⌘P ) 또는 메뉴 바에서 일시 중지 를 클릭하십시오.일시 중지되는 동안 타임라인이 나타나고 그래프를 클릭하거나 드래그하여 프레임을 탐색할 수 있습니다.
다양한 뷰와 마이크로프로파일러 인터페이스를 탐색하는 방법에 대한 전체 요약은 MicroProfiler 모드를 참조하십시오.
스레드
많은 프로그램과 마찬가지로 Roblox는 여러 스레드를 사용하여 동시에 여러 개의 작업 시퀀스를 수행합니다.마이크로프로파일러 세부 모드에서 왼쪽에 각 스레드에 대한 레이블을 볼 수 있습니다.

세 가지 주요 스레드 유형이 있습니다:
메인/렌더링 : 아마도 직관적이지 않게, CPU에서 실행됩니다.프로세스 입력, Humanoids , 애니메이션/트위닝, 물리 소유권, 소리, 대기 스크립트 재시작또한 Studio 인터페이스를 업데이트하고 다른 스레드를 조정합니다.
작업자 ("RBX 작업자"): 네트워킹, 물리 및 경로 찾기에 도움이 되는 메인 스레드를 지원합니다.현대의 CPU에 코어 수가 많기 때문에 작업자 스레드가 많이 있으며, 이 중 대부분은 특정 시점에 수면 상태에 있습니다.
렌더링 </1 "(GPU):" "준비, 수행, 제시" 논리를 따릅니다. 기기그래픽 처리 유닛(GPU)과 통신합니다.
- 준비: 메인 스레드의 정보는 렌더링 모델을 업데이트하는 데 사용됩니다.
- 수행: 2D 인터페이스를 포함하여 문제 렌더링 명령 실행
- 현재: GPU와 동기화됩니다.
사용자 지정 프로필
스크립트가 복잡한 작업을 실행하는 경우 코드의 중요한 부분을 프로파일링하여 너무 오래 걸리지 않도록 할 수 있습니다.코드를 debug.profilebegin() 및 debug.profileend()에 감싼 후 해당 함수 호출 사이에서 모든 작업을 완료하고 MicroProfiler 시간표에 레이블을 생성합니다.
하드워크 스크립트
debug.profilebegin("Hard Work")-- 프로파일링할 코드debug.profileend()

MicroProfiler 레이블에 사용할 수 있는 메모리 양이 제한되어 있습니다.이 메모리가 부족하면 사용자 지정 프로파일러 레이블이 타임라인에서 의미 있는 이름으로 표시되지 않을 수 있습니다.이 문제를 피하려면 레이블을 적게 사용하십시오.코드 섹션을 더 이상 프로파일링할 필요가 없으면 이러한 함수에 대한 주석을 달거나 호출을 제거합니다.
예시
아래 코드 샘플은 가짜 함수를 실행하는 RunService.PreSimulation 이벤트에 연결하여 모든 프레임을 실행합니다.이러한 작업을 자주 수행하면 가능한 한 효율적으로 실행되어야 하므로 이 함수는 프로파일링에 좋은 후보입니다.
local RunService = game:GetService("RunService")
local function onPreSimulation()
debug.profilebegin("Hard Work")
-- 예시 고된 작업: 변수 200,000회 교체
local a, b = 0, 1
for _ = 1, 200000 do
a, b = b, a
end
debug.profileend()
end
RunService.PreSimulation:Connect(onPreSimulation)
경험을 실행하고 MicroProfiler( 또는 )를 일시 중지하면 사용자 지정 레이블이 게임Stepped 레이블 아래에 표시됩니다.

타임라인에서 지속 시간을 통해 함수가 다른 작업에 비해 많은 처리 시간을 사용하고 있음을 알 수 있습니다.
프레임 데이터 저장
나중에 검토하거나 다른 사람과 공유할 프레임 데이터 세트를 저장하려면 버리기 메뉴를 사용하십시오.엔진은 Roblox 로그 디렉토리에서 microprofile-<date>-<time>.html라는 이름의 파일에 프레임 데이터를 저장합니다.
Windows에서는 %LOCALAPPDATA%\Roblox\logs를 확인하십시오.
Universal Windows Platform(UWP) 앱을 사용하는 경우 \Users\<username>\AppData\Local\Packages\ROBLOXCORPORATION.ROBLOX_<hash>\LocalState\logs\를 확인하십시오.
macOS에서는 ~/Library/Logs/Roblox를 확인하십시오.
이 HTML 파일은 모바일 장치용 라이브 연결과 서버 덤프의 동일한 웹 기반 UI를 사용합니다.
프로필 모바일 장치
모바일 클라이언트에서 마이크로프로파일러에 액세스하려면 모바일 장치가 개발 기계와 동일한 네트워크 에 연결되어야 합니다.
모바일 기기 설정 메뉴에서 마이크로프로파일러를 활성화합니다. 활성화한 후 메뉴에 IP 주소와 포트 번호가 표시됩니다.

예를 들어, 위의 스크린샷에서 주소는 192.168.1.166이고 포트는 1338입니다.동일한 네트워크의 컴퓨터에서 MicroProfiler 사용자 인터페이스의 웹 기반 버전에 대해 탐색하려면 다음으로 이동합니다.From a computer on the same network, navigate to for a 웹 기반 버전 of the MicroProfiler user interface.

서버 프로파일링
표준 클라이언트 MicroProfiler 외에도 서버 MicroProfiler를 사용하여 서버 활동의 간략한 덤프를 얻을 수 있습니다.
편집 권한이 있는 경험에서, CtrlAltF9 개발자 콘솔을 열어 보십시오.
드롭다운 메뉴에서 MicroProfiler 를 선택합니다.
서버 프로파일러 섹션에서 초당 프레임 수(최대 60)와 프로파일링할 시간(최대 4)을 지정하십시오.
웹 UI 사용
일반적으로 MicroProfiler 웹 UI는 자세한 모드와 비슷하게 작동하지만 몇 가지 추가 기능이 있습니다:
그룹별 필터링 외에도 스레드별로 필터링할 수 있습니다.
/ 를 사용하여 덤프에서 가장 많은 시간을 차지하는 태스크의 발생으로 이동합니다.예를 들어, computeLightingPerform는 모든 프레임에서 실행됩니다.128프레임으로 구성된 덤프에서 검색하면 완료에 가장 오랜 시간이 걸린 프레임으로 이동할 수 있습니다.
X-레이 메뉴를 사용하여 메모리 할당에 대한 색 코딩을 활성화하거나 비활성화합니다.
- 메인 바 그래프 내의 라이트 프레임은 더 높은 메모리 할당을 나타냅니다.
- 미리 보기 바의 더 가벼운 부분과 타임라인의 더 가벼운 레이블은 메모리 할당량이 더 높은 프레임 부분을 나타냅니다.
- 엑스레이 모드에서는 C를 눌러 할당 수가 아닌 메모리 할당 총 크기를 표시합니다.
내보내기 메뉴( 내보내기 )를 사용하여 CPU 또는 메모리 불꽃 그래프를 내보내고, 덤프에 포함된 모든 호출 스택을 집계하고, 부모-자식 계층을 유지하고, 기간에 따라 크기를 조정합니다.화염 차트는 특히 실행에 오랜 시간이 걸리지 않고 (따라서 알기 어려움) 너무 자주 실행되어 처리 시간이 중요해지는 작업을 식별하는 데 유용합니다.
스튜디오에서도 화염 차트를 만들 수 있지만, 스크립트(실행 시간 및 메모리 할당)에만 사용할 수 있습니다.웹 기반 화염 차트와 비교하여 Studio의 화염 차트는 하향이 아닌 상향이며 더 긴 캡처 시간을 지원합니다.
두 번째 덤프 파일을 웹 UI로 드래그 앤 드롭하여 경과 시간에 경험의 성능에 대한 개선 또는 후퇴를 식별할 수 있는 차이 화염 그래프를 생성합니다.새 HTML 파일을 내보내려면 결합 및 비교 를 클릭하십시오.
차이 화염 그래프는 더 많은 CPU 또는 메모리를 사용하는 덤프(왼쪽 또는 오른쪽)를 강조하고 더 밝은 색상은 더 큰 차이를 나타냅니다.