다음은 MicroProfiler의 일반적인 태그 목록입니다, 카테고리별로 그룹화되어 있습니다. 이 태그를 이해하는 것은 문제가 있는 코드를 식별하는 데 도움이 될 수 있습니다. 테이블에는 태그 레이블, 설명 및 성능 조언이 포함되어 있습니다. 이를 통해 경험을 개선하고 성능을 최적화할 수 있습니다.
AI/나비게이션
레이블 | 설명 | 성능 팁 |
---|---|---|
랙화일 | 경로 찾기 요청에 필요한 탐색 타일을 업데이트하는 경우, 일반적으로 해당 타일이 최신 상태여야 하는 계산 경로를 따라 수행됩니다. 메인 스레드의 NavigationJob/pre処理를 따릅니다. | 경로 찾기 타일 무효화의 수를 줄이십시오, 이렇게 하면 이러한 경로가 다시 계산해야 하기 때문에 필요합니다. 이는 이동 가능한 부품 때문에 발생합니다. |
컴퓨트 경로 | 경로를 계산합니다. 일반적으로 rasterizeTile 후에. | ComputePath 호출의 개수 및 세계 영역을 줄이십시오. 경로를 다시 사용하여 여러 에이전트에서 시작/종료하는 것이 예상되는 경우 경로를 다시 사용하십시오. |
프로처리/프리미티브 중첩 가져오기 | 각 경로 찾기 타일에 대한 세계 지오메트리를 수집하고 경로 찾기 스레드에서 렌더링 작업을 예약합니다. | 부품 수를 줄이십시오. |
애니메이션
레이블 | 설명 | 성능 팁 |
---|---|---|
시뮬레이션/게임Stepped | 게임 특정 개체처럼 Humanoids, Animations 및 하트 비트 콜백을 처리하는 중 | |
시뮬레이션/게임Stepped/StepLegacy | Humanoid 상태 변경 및 movement.Called 서버의 stepHumanoid(병렬 버전) | NPC에 있는 Humanoid 상태를 비활성화하거나 줄이십시오. 사다리 상태는 가장 중요한 비활성화 방법입니다. 콜백을 상태 변경으로 줄이십시오, 예를 들어 Humanoid.Died 또는 Humanoid.Running입니다. |
시뮬레이션/게임Stepped/stepAnimation | Animators 는 현재 애니메이션을 재생하는 것으로 전진합니다. | 이 단계의 작업 부하를 줄이려면 Animators 또는 애니메이션 조인트의 수를 줄이십시오. 콜백을 애니메이션 이벤트로 줄이려면 AnimationTrack.KeyframeReached 또는 AnimationTrack.Ended 를 줄입니다. |
시뮬레이션/게임Stepped/RunService.Stepped | Class.RunService.Stepped 이벤트에 연결된 함수를 실행합니다. | 이 이벤트에 연결된 함수의 수나 작업량을 줄입니다. 비용이 많이 드는 복잡한 계산을 지연하거나 교체하는 것을 고려하십시오. 여러 프레임에 대해 계산을 확장하는 것을 고려하십시오. |
오디오
레이블 | 설명 | 성능 팁 |
---|---|---|
음향 | 오디오 처리: 위치, 효과, 볼륨 등 | |
개발자 태그_음향 | 메모리 내 사운드: 일반적으로 메모리에 들어갈 정도로 짧은 사운드입니다. 일반적으로 짧은 하나의 샷 fx, 길이가 아닌 음악을 나타냅니다. | 짧은 소리를 사용합니다. |
개발자 태그_스트리밍 사운드 | stream/StreamingSounds: 이는 디스크에서 스트리밍되는 큰 음악 파일입니다. 일반적으로 더 긴 형식의 음악 파일입니다. | 긴 소리를 사용하지 마십시오. |
네트워킹
레이블 | 설명 | 성능 팁 |
---|---|---|
네트워크 패킷 수신 | 네트워크 패킷을 수신합니다. 많은 개체나 이벤트가 복제되는 경우 이 단계가 더 오래 걸립니다. | 개체나 이벤트를 더 적게 복제합니다. |
리플리케이터/프로세스 패킷 | 네트워크 패킷의 콘텐츠, 예를 들어 이동, 이벤트 호출 및 속성 변경을 처리합니다. | 복제되는 개체의 수나 크기를 줄이거나 증분 단위로 수행합니다. 맵 크기가 증가함에 따라 맵 내의 개체 수가 증가하고 활동이 증가하므로 증가할 수 있습니다. |
대역 할당 및 실행 발신자/전송 물리 발신자 및 터치 발신자 | 경험에서 활동에 대한 데이터를 보냅니다. | 이동 개체 및/또는 터치의 수를 줄이십시오. 다음 섹션을 참조하십시오. |
대역폭 할당 및 실행 송신기/디스패치 스트림 작업 | “스트리밍” 기능에서 해당 지역을 특정 클라이언트에 보냅니다. | 최소 및 대상 스트림 레이를 줄이십시오. |
대역 폭 할당 및 실행 발신자/데이터 전송자 | 속성 변경, 원격 이벤트, 인간형 상태 변경, 애니메이션 시작/중지를 보냅니다. | 데이터 모델에 복제된 변경 사항 수를 줄이십시오. |
복제 클러스터 보내기 | 클라이언트에 지형 데이터를 보냅니다. | 지형 변경의 양이나 크기를 줄이십시오. |
ModelCompleteness Mega 작업 | 서버 전용: 완전성은 내부 개념입니다. 모델이 완전히 전송되면 모델 완전성 이벤트가 문 | 인스턴스를 더 추가하거나 제거합니다. |
데시리제패킷 | 저수준 네트워크 패킷 처리. Replicator 프로세스 패킷에 대비합니다. | 업데이트를 보내십시오. |
렌더링
레이블 | 설명 | 성능 노트 |
---|---|---|
준비 | 주 스레드에서 정보를 수집하고 렌더링에 사용되는 다양한 데이터 구조를 업데이트합니다. 이렇게 하면 시뮬레이션 스레드가 줄어들므로 가능한 한 작게 유지해야 합니다. | 아래에서 준비 레이블을 참조하십시오. |
준비/Pass3dAdorn | 다양한 개체 장식, 예를 들어 개체 위의 텍스트 레이블. 이 단계에는 레이캐스팅을 포함할 수 있으므로 이러한 개체가 표시되는지 여부를 결정할 수 있습니다. | Class.BillboardGui|BillboardGuis, Humanoid 이름 및 체력 레이블 등의 표시 장식된 개체 수를 줄이십시오. |
준비/패스2d | 2D 인터페이스 렌더링(플레이어 및 Roblox 인터페이스). | UI 요소의 개수 또는 복잡성을 줄이십시오. |
Prepare/UpdatePrepare/updateInvalidParts | 특성이 변경된 또는 추가된 부품을 업데이트합니다. | 세계에서 속성 변경의 양을 줄이십시오. 스크립트가 대규모 개체 속성을 업데이트하면 프레임 간에 작은 집합으로 나눕니다. |
Prepare/UpdatePrepare/updateInvalidatedFastClusters | 대개 렌더링하기 위해 사용되는 Humanoids를 준비합니다. 하위 마커는 부품, 윤곽 및 윤곽의 크기를 지정합니다. | 개체가 Humanoids 하지 않은 경우에는 'Humanoids'를 사용하지 마십시오. 이렇게 하면 개체가 더 많은 메모리를 사용하므로 빠른 클러스터에서 드로우 콜을 최소화할 수 없습니다. |
Prepare/UpdatePrepare/DynamicParts 준비/업데이트 | Class.Humanoid|Humanoids, 차량 및 기타 이동 인스턴스를 위한 위치 업데이트. | 이동 중인 Humanoids 또는 차량의 복잡성을 줄이십시오. 동일한 재료 및 색상의 부품을 조합하여 유니온 또는 MeshPart를 만들면 도움이 될 수 있습니다. |
Prepare/UpdatePrepare/updateInstancedClusters | 인스턴스 렌더링(부품 및 메쉬 부품)을 사용하는 정적 기하를 준비합니다. "클러스터" 및 "인스턴스" 레이블은 업데이트된 번호를 나타냅니다. | 전체 메쉬 및 재료 변경을 최소화하십시오. 또한 유사한 모양의 개체를 사용하여 클러스터를 생성할 수 있습니다. |
수행 | 실제 렌더링 명령이 생성되고 발행될 때. | 아래에 레이블을 참조하십시오. |
Perform/FillGuiVertices | UI 렌더링. 버퍼에 액세서리용 UI 벡터를 채웁니다. "Gui count" 레이블은 렌더러 목록의 요소 수를 나타냅니다. | 비용이 많이 드는 경우 사용자가 숨겨 있는 동안 해당 인터페이스를 업데이트하는 것을 확인하여 사용자에게 알려주도록 합니다. |
Perform/Scene/queryFrustumOrdered | 보이지 않는 개체를 렌더링하지 않도록 frustum 제거를 적용합니다. | 높은 비용이 많은 요소가 있음을 의미하는 경우 더 큰 메쉬를 사용하여 단일 메쉬에 더 많은 세부 정보가 있습니다. 여러 작은 개별 조각이 있는 대신 메쉬 하나로 더 많은 세부 정보를 표시할 수 있습니다. |
스케치/스케치/스케치 조명 수행 | 카메라 근처에서 조명을 계산합니다. | 조명 재계산 시간을 줄이려면 조명 수를 조작하거나 카메라를 이동합니다. |
스케이프/스케이프/컴퓨트라이트/컴퓨트라이트 CPU | Updates the voxel lighting, which is used in Voxel and ShadowMap modes and at quality levels below 4 in Future mode. | 덩어리 점유량을 업데이트하는 데 너무 오래 걸리면 해상도를 낮추거나 부품 수를 줄이거나 고정 부품을 사용하십시오. 다른 하위 표시기가 너무 오래 걸리면 조명을 줄이고 그림자 캐스팅 기하구조를 사용하여 점유량이 잘못 되는 개체를 위해 개체를 고정하십시오. |
계산/스케치/조명 계산/그림자 맵 시스템 | Shadow 맵을 업데이트합니다. 품질 수준이 4 미만인 경우 또는 Lighting.Technology 를 Voxel 로 설정하면 수행되지 않습니다. | 조명이 Future로 설정되면 하위로 ShadowMap 또는 조명 수를 줄입니다. 또한 Light.Shadows 및 1> Class.BasePart.CastShadows1>를 사용하여 더 적은 인스턴스에 대해 그 |
Perform/Scene/Glow, ColorCorrection, MSAA, SSAO, 및 SSAOApply 수행 | 포스트 처리 렌더링. | 포스트 처리 효과의 개수를 줄이십시오. 일반적으로 이것은 중요하지 않습니다. |
액션/스케이프/UI | UI 렌더링. 이드 스크린에는 사용된 배치, 재료 및 삼각형의 수를 표시하는 레이블이 있습니다. | 표시 가능한 UI 요소의 수를 줄이십시오. CanvasGroups를 사용하면 메모리 사용량을 증가시킬 수 있습니다. |
Perform/Scene/UpdateView/updateParticles, updateParticleBindings | 입자 위치 및 한도 업데이트. | Class.ParticleEmitter|ParticleEmitterters 수, 방출 비율, 수명 등을 줄이십시오. 방출자의 이동을 제한합니다. |
이드_오펙 | 0의 투명도 값이 있는 장면의 부품. | |
투명_ID | 0 이외의 투명도 값이 있는 장면의 부품. | 부분 투명도 사용(0 및 1을 제외한 값)을 줄이십시오. |
이미지 ID | 장면에 데칼. | |
수행/제공 | 이전 프레임을 렌더링할 GPS를 완료하기를 기다리고 있습니다; 실제로 렌더링 명령을 GPS에 발생시키고 저레벨 그래픽 리소스를 처리합니다. | 일반적으로 시네마 복잡성을 줄이십시오.이 단계가 오래 걸리면 경우 딥 러닝 그래프에 제한 될 수 있습니다. |
수행/제공/완료될 때까지 기다리기 | GPU가 이전 프레임을 렌더링하기를 마칠 때까지 대기합니다. | 이 일이 자주 발생하면 렌더링되는 것의 수가 너무 많아집니다. FRM은 이것을 균형 잡는 데 도움이 되지만, 높게 유지되면 자세한 부분을 사용하지 마십시오. |
스크립트
레이블 | 설명 | 성능 팁 |
---|---|---|
렌더/미리렌더/fireBindToRenderSteppedCallbacks | Class.RunService:BindToRenderStep()를 통해 단계를 렌더링하는 함수를 실행합니다. | 스크립트에서 함수를 사용하여 작업을 최소화하십시오. RunService:BindToRenderStep() |
Render/PreRender/RunService.RenderStepped | Class.RunService.RenderStepped 이벤트에 연결된 함수를 실행합니다. | BindToRenderStep 와 유사하지만, 이 이벤트를 사용하는 함수는 최소한의 작업을 수행해야 합니다. |
잠시 대기 하이브리드 스크립트 작업 | 대기 프레임을 사용하여 기다리는 스크립트를 재시작합니다. | 이 단계에는 실행 스크립트 예산이 있으므로 많은 대기 스크립트 또는 런타임이 길게 걸리는 스크립트가 있으면 이 단계는 여러 개의 단계를 수행할 수 있습니다. |
LuaGC | Lua 가비지 수집 사이클. 레이블은 총 할당량과 할당된 메모리의 양을 예상합니다. | 풀 루아 테이블 및 다른 수집 가능한 개체 또는 임시 테이블 또는 문자열을 만드는 것을 시도하십시오. |
하트 비트/RunService.Heartbeat | 심ulators 및 스크립트 연락처에 연결된 함수를 실행하기 위해 Class.RunService.Heartbeat``event.Talk 에 연결됩니다. 현재 설명은 충분히 일반적인 수준에서 잘못될 수 없습니다. | RunService.Heartbeat에 연결된 함수의 수나 작업량을 줄입니다. |
시뮬레이션
레이블 | 설명 | 성능 팁 |
---|---|---|
물리 학습 소프트웨어 배포 | 서버나 클라이언트가 부품과 같은 특정 인스턴스에 대한 권한이 있는지 여부를 결정합니다. | 물리 학 소유권을 배포합니다. |
시뮬레이션/조립 | 물리 엔진에 사용되는 연결된 개체(조합)의 트리를 업데이트합니다. | 생성 또는 파괴되는 관절의 수를 줄이십시오. |
시뮬레이션/물리학SteppedTotal/물리학Stepped | 물리 시뮬레이션을 실행합니다. | 물리적으로 시뮬레이션된 바디의 수와 복잡성을 줄이십시오. |
시뮬레이션/물리학SteppedTotal/물리학Stepped/SpacialFilter/filterStep | 네트워크 소유권에 따라 부품을 배치하고, 로컬 시뮬레이션에서 부품을 배치하는 방식으로 업데이트합니다. 섬은 독립적으로 시뮬레이션할 수 있는 부품의 그룹입니다. | 네트워크 소유권을 자주 설정하지 마십시오. 서로 멀리 떨어져 있는 부품 그룹을 유지하여 개별적으로 시뮬레이션할 수 있습니다. |
시뮬레이션/물리학SteppedTotal/물리학Stepped/worldStep/stepContacts | 개체 간의 연락처를 업데이트합니다. | 한 번에 충돌하는 바디의 수를 줄이거나 간단한 충돌 상자를 사용하십시오. 큐브는 복잡한 메쉬보다 좋습니다. |
시뮬레이션/물리학SteppedTotal/물리학Stepped/worldStep/stepWorld 또는 stepWorldThrottled | 커넥터, 부력 및 Humanoids 에 대한 물리 식을 해결합니다. 엔진이 과부하되어 모든 것을 실시간으로 시뮬레이션할 수 없으면 일부 단계가 제한되고 실시간 조합인 Humanoids 만 시뮬레이됩니다. | 다음 세 가지 단계에 따라 시간이 어디로 이동할지 결정합니다. stepContacts: 좁은 단계 충돌 검색 기하 테스트 solver step: 시간을 통합하고 충돌 및 다른 제약 사항을 업데이트 broadphaSE: 충돌 검색 시스템에서 조합 찾기 및 충돌 찾기 위치 업데이트: 충돌 찾기 및 좁은 단계 충돌 검색 기능 |
이동 중인 조립품 알림 | 원시 모델이 잠을 잤는지 추적하는 데 도움이 됩니다. | |
시뮬레이션/물리학SteppedTotal/물리학Stepped/interpolateNetworkedAssemblies | 이 네트워크 쌍이 제어하지 않는 조립은 인터폴 됩니다.Interpolates assemblies not controlled by this network peer. | 이 피어에 부품 소유자를 설정하여 네트워크 대역을 줄이도록 하십시오. 이는 일반적으로 다른 곳에서 물리 작업을 더 많이 수행하도록 하는 경우가 많습니다. |
시뮬레이션/핸들FallenParts | 작업 공간/FallenPartsDestroyHeight 아래에 떨어진 부품을 제거합니다. | 낮추거나 파괴 높이를 줄이거나 파괴하는 부품의 수를 줄입니다. |
하트 비트/하트 비트 내/작업 공간/하트 비트 업데이트/시각적 잠자기 | NotifyMovingAssemblies의 두 번째 부분입니다. | |
하트 비트/RunService.Heartbeat | 심ulators 및 스크립트 연락처에 연결된 함수를 실행하기 위해 Class.RunService.Heartbeat``event.Talk 에 연결됩니다. 현재 설명은 충분히 일반적인 수준에서 잘못될 수 없습니다. | Class.RunService.Heartbeat 에 연결된 함수의 수나 작업 부하를 줄이십시오. |
월드 스텝/스텝 콘텍트 | 물리 시뮬레이션 단계에서 많은 접촉을 한 번에 시작합니다. | 충돌하는 개체의 수를 줄이십시오. |
솔브 배치 | 물리 시뮬레이션이 개체의 이동 배치를 해결하는 데 도움이 됩니다. | |
메커니즘 인터플레이션 | InterpolateNetworkAssemblies에 도움이 됩니다. |
UI
레이블 | 설명 | 성능 팁 |
---|---|---|
렌더/미리렌더/업데이트입력 | 사용자가 마지막 프레임 이후에 입력한 경우 모든 사용자 입력 관련 이벤트를 업데이트하고 발사합니다. | 사용자 입력과 관련된 이벤트가 발생할 때입니다. 입력을 받기 때문에 직접 작업을 하지 마십시오. 입력에 대한 최소 처리량을 고려하고 나중에 다른 스레드로 작업을 밀어 주십시오. |
렌더링/미리 렌더링/트윈 서비스 | Class.TweenService를 사용하여 트위니드되는 개체를 업데이트하고 완료된 트위니드 콜백, 예를 들어 TweenSize 또는 TweenPosition 를 호출합니다. | TweenService를 사용하여 트위니 되도록 개체 수를 줄이고 콜백이 가능한 한 적은 작업을 수행하도록 하세요. |
렌더/미리렌더/UI 레이아웃 업데이트 | UI 요소의 위치 및 크기를 업데이트합니다. | Class.UILayout처럼 동적으로 크기를 조정하거나 위치를 변경하는 UI 요소의 수를 줄이십시오. |
하트 비트/트윈 서비스 | 서버에서 TweenService로 개체를 업데이트합니다. 클라이언트에서는 이 작업이 미리 렌더링 단계에서 수행됩니다. | Class.TweenService 에 의해 트위닝되는 개체의 수를 줄이십시오. |