A continuación, se proporciona una lista de etiquetas comunes en el MicroProfiler, agrupadas por categoría. Entender estas etiquetas puede ayudarlo a identificar el código problemático en su experiencia. Las tablas contienen etiqueta de nombre, descripción y consejo de rendimiento para mejorar el rendimiento y optimizar su experiencia.
IA/Navegación
Etiqueta | Descripción | Consejos de rendimiento |
---|---|---|
rasterizarTile | Actualiza las fichas de navegación necesarias para una solicitud de enlace de camino, generalmente seguidas por computePath que requiere que esas fichas estén actualizadas. Sigue a NavigationJob / pre procesar en el subprocesoprincipal. | Reduce la cantidad de invalideces de las baldosas de enlace, ya que esto hace que esas rutas necesiten recompilar. Esto se debe a que las partes no navegables se están moviendo. |
计算路径 | Calcula rutas, generalmente después de rasterizeTile . | Reduce el número y el mundo de las llamadas de ComputePath. Intenta reutilizar los caminos para varios agentes si se espera que comienzen/ terminen desde ubicaciones aproximadamente similares. |
preprocesar/getPrimitivesOverlapping | Recoge la geometría del mundo para cada azulejo de camino y programar las tareas de rasterización para que se ejecuten por el subprocesode camino. | Reducir el número de partes. |
Animación
Etiqueta | Descripción | Consejos de rendimiento |
---|---|---|
Simulación/juegoPasado | Procesando objetos específicos del juego, como Humanoids , Animations y llamadas de corazón | |
Simulación/juegoStepped/StepLegacy | Humanoid estado cambia y movement.Called pasoHumanoid en el servidor ahora (versión paralela) | Desactivar o reducir los estados de Humanoid en los NPC, si los tienes. El estado de escalera es más importante para desactivar. Reduce los llamados para cambios de estado como Humanoid.Died o Humanoid.Running |
Simulación/juegoPasado/pasoAnimación | Animators avanzará en jugar animaciones actualmente. | Reduce la cantidad de Animators o articulaciones animadas para reducir la carga de trabajo de este paso. Reduce el número de llamadas a eventos de animación como AnimationTrack.KeyframeReached o AnimationTrack.Ended |
Simulación/juegoStepped/RunService.Stepped | Ejecuta funciones conectadas al evento RunService.Stepped. | Reduce la cantidad o el trabajo de las funciones conectadas a este evento. Considere atrasar o reemplazar cálculos costosos. Considere la distribución de la computación en múltiples marcos. |
Audio
Etiqueta | Descripción | Consejos de rendimiento |
---|---|---|
Sonido | Procesar sonido, audio: ubicaciones, efectos, volúmenes, etc. | |
Etiqueta de desarrollador_sonidos | Sonidos en el memoria: generalmente sonidos cortos que son lo suficientemente pequeños para entrar en el memoria. Por lo general, fx de un solo disparo, no música de larga forma. | Usa menos sonidos cortos. |
Etiqueta de desarrollador_sonidos de transmisión | stream/StreamingSounds: estos son sonidos más grandes que se transmiten desde el disco. Generalmente archivos de música en forma larga. | Usa menos sonidos largos. |
Redes
Etiqueta | Descripción | Consejos de rendimiento |
---|---|---|
Net Packet Receive | Recibe paquetes de red. Si se están replicando muchos objetos o eventos, este paso toma más tiempo. | Replica menos objetos o eventos. |
Replicador/ProcessingPackets | Procesa el contenido de los paquetes de red, como el movimiento, las invocaciones de eventos y los cambios de propiedad. | Reduzca el número o el tamaño de los objetos que se replican, o haga esto en pasos incrementales. Puede aumentar si el tamaño de los mapas aumenta, ya que los mapas más grandes suelen tener más actividad general. |
Asignar ancho de banda y ejecutar Senders/Dispatch Physics Senders y TouchSenders | Envía datos sobre la actividad en la experiencia. | Reduce la cantidad de objetos y/o toques en movimiento. Ver las siguientes secciones. |
Asignar ancho de banda y ejecutar Senders/Dispatch StreamJob | Envía regiones específicas correspondientes a clientes específicos en la función "Streaming". | Reduce el mínimo y el objetivo streaming radii. |
Asignar ancho de banda y enviar datos de los remisores/dispensadores | Envía cambios de propiedad, eventos remotos, cambios de estado de humanoid, inicio / detención de animación. | Reduce el número de cambios replicados al aplicación de modeladode datos |
Reproductor SendCluster | Envía datos de terreno a los clientes. | Reduce la cantidad o tamaño de los cambios de terreno. |
ModelCompleteness Mega Trabajo | Solo servidor: la completitud es un concepto interno. Cuando los modelos se envían completamente, se envían los eventos de completitud del modelo. | Añadir o eliminar menos instancias. |
Paquete de Despiece | Procesamiento de paquetes de red de bajo nivel. Prepara paquetes para Replicator ProcessPackets. | Envía menos actualizaciones. |
Renderizado
Etiqueta | Descripción | Notas de rendimiento |
---|---|---|
Preparar | La información se recopila desde el hilo principal y actualiza varias estructuras de datos utilizadas para renderizar. Esto bloquea los hilos de simulación, por lo que debe ser lo más pequeño posible. | Vea las etiquetas de Preparación a continuación. |
Preparar/Pasar3dAdorn | Renderiza varias adornos de objetos, como etiquetas de texto por encima de los objetos. Este paso puede incluir raycasting para determinar si dichos objetos son visibles. | Reduce el número de objetos adornados visibles, como BillboardGuis , Humanoid etiquetas de nombre/salud, etc. |
Preparar/Pasar2d | Prepara la renderización de la interfaz de usuario 2D (ambos jugadores y la interfaz de usuario de Roblox). | Reduce la cantidad o la complejidad de los elementos de la interfaz de usuario. |
Preparar/ActualizarPreparar/actualizarInvalidParts | Actualiza partes que tuvieran propiedades cambiadas o agregadas. | Reduce la cantidad de cambios de propiedades en el mundo. Si un script actualiza un gran conjunto de propiedades de objetos, déjalo en múltiples marcos. |
Preparar/ActualizarPreparar/actualizarInvalidatedFastClusters | Prepara geometría, generalmente "FastClusters" utilizado para renderizar Humanoids . Los submarcadores especifican el número de partes, vértices y tamaño de vértices. | Reduce el uso de 'Humanoides' debajo de los objetos que no son Humanoids . Esto no debería usarse para acortar las llamadas de dibujo a medida que FastClusters consumen mucho más memoria. |
Preparar/ActualizarPreparar/actualizarDynamicParts | Actualiza las posiciones para Humanoids , vehículos y otras instancias en movimiento para renderizar. | Reducir el número o la complejidad de los motores en movimiento. Humanoids o vehículos visibles. Combinar partes del mismo material y color en una unión o MeshPart puede ayudar con esto. |
Preparar/ActualizarPreparar/actualizarInstancedClusters | Prepara geometría estática que usa renderizado instantáneo (partes y partes de malla). Las etiquetas "Clústeres" y "Instancias" indican el número actualizado. | Usa menos variación de malla y material en general. También puedes crear grupos al usar objetos que tengan apariencia similar: tamaño, color, material. |
Realizar | Cuando se crean y emiten comandos de render reales. | Vea las etiquetas de rendimiento a continuación. |
Realizar/llenar Gui Vertices | Renderizado de UI. Llena los tamales con UI верtes para adornos. "Gui count" etiqueta indica la cantidad de elementos en la lista de renderizado. | Si el costo es alto, reduce la cantidad de UI que se actualiza desactivándolo cuando no se usa asegurándose de que esté oculto correctamente. |
Ejecutar/Escena/ordenarFrustum | Aplica la eliminación de frustum para que los objetos no visibles no sean renderizados. | Si hay un alto costo, eso significa que hay muchos elementos. Tal vez usar algunas mallas más grandes donde una sola malla tiene más detalles en lugar de muchas piezas individuales pequeñas. |
Ejecutar/Escena/computadoraLightingPerform | Cálculo de iluminación cerca de la cámara. | Manipula la cantidad de fuentes de luz o mueve la cámara menos para reducir el tiempo que se necesita para recalcular la iluminación. |
Actuar/Escena/computeLightingPerform/LightGridCPU | Actualiza la iluminación del voxel, que se utiliza en los modos Voxel y ShadowMap y en los niveles de calidad debajo de 4 en el modo Future . | Si actualizar el estado del trozo tarda demasiado, considere utilizar geometría de menor resolución, reducir el número de partes o anclar partes. Si los demás submarcadores tardan demasiado, considere reducir el número de luces y utilizar geometría de sombreado no estándar para objetos que se mueven y anulan el estado del trozo. |
Actuar/Escena/computeLightingPerform/ShadowMapSystem | Actualiza los mapas de sombra. No se realiza a nivel de calidad por debajo de 4 o cuando se establece Lighting.Technology en Voxel . | Si la iluminación está configurada como Future , reduce la iluminación a ShadowMap o reduce el número de luces. También puedes usar Light.Shadows y 1> Class.BasePart.CastShadows1> para deshabilitar la iluminación en instancias menos importantes. Ver |
Realizar/Escena/Brillo, ColorCorrection, MSAA, SSAO y SSAOApply | Renderizado postprocesado. | Reduce el número de efectos de postprocesado. Por lo general, esto no es significativo. |
Actuar/Escena/UI | Renderizado de UI. En Id_Screen, hay una etiqueta con el número de lotes, materiales y triángulos usados. | Reduce el número de elementos de UI visibles. El uso de CanvasGroups puede ayudar a expensar el uso de memoria. |
Actuar/Escena/ActualizarVistas/ActualizarPartículas, actualizarPartículas | Actualice la posición y los límites de la partícula. | Reducir el número de ParticleEmitters , emisiones, tiempo de vida, etc. Límite el movimiento de emisores. |
Id_Opaco | Partes en la escena con un valor de transparencia de 0. | |
Id_Transparente | Partes en la escena con un valor de transparencia diferente a 0. | Reducir el uso de la transparencia parcial (valores que no son 0 y 1). |
Imagen ID | Decalques en la escena. | |
Realizar/Presentar | Espera a que el renderizador de gráficos termine de renderizar el marco anterior; en realidad, emite comandos de renderizado a la CPU; se ocupa de los recursos gráficos de nivel bajo. | Reducir la complejidad de la escena en general. Si este paso toma mucho tiempo, puede estar limitado por elGPU. |
Realizar/Presentar/EsperarHastaQueSeCompleta | Espera a que el renderizado del marco anterior haya terminado. | Si esto generalmente sucede mucho, entonces la cantidad de cosas que se renderizan es demasiado alta. FRM ayuda con esto, pero si se mantiene alta, trata de usar menos detalle. |
Guiones
Etiqueta | Descripción | Consejos de rendimiento |
---|---|---|
Render/PreRender/fireBindToRenderSteppedCallbacks | Corriendo funciones vinculadas a renderizar paso a través de RunService:BindToRenderStep() . | Asegúrese de que las funciones en los scripts que usan RunService:BindToRenderStep() hagan el menor trabajo posible. |
Render/PreRender/RunService.RenderStepped | Ejecuta funciones conectadas al evento RunService.RenderStepped. | Al igual que BindToRenderStep, asegúrese de que las funciones que usan este evento realicen el menor trabajo posible. |
EsperandoHybridScriptJob | Resume los scripts que están pendientes de usar wait. frames. | Este paso tiene un presupuesto de tiempo de ejecución para ejecutar scripts de espera, así que si tienes demasiados scripts de espera o scripts con un tiempo de ejecución largo antes de rendir, este paso puede tomar múltiples |
LuaGC | Ciclo de recolección de basura de Lua. La etiqueta proporciona estimaciones de memoria sobre la alocación total y la cantidad de desalokado. | Tablas de lua de piscina y otros objetos recolectables o intenta reducir la creación de tablas temporales o cadenas |
Heartbeat/RunService.Heartbeat | Ejecuta funciones conectadas a Class.RunService.Heartbeat``event.Talk para contactos de simulación y scripts. La descripción actual es lo suficientemente genérica para no estar equivocada | Reduce la cantidad o el trabajo de las funciones conectadas a RunService.Heartbeat. |
Simulación
Etiqueta | Descripción | Consejos de rendimiento |
---|---|---|
Distribución de propiedad física | Determina si el servidor o un cliente tiene autoridad sobre instancias específicas, como partes. | Distribución de propiedad física. |
Simulación/ensamblado | Actualiza un árbol de objetos conectados (ensambles) usados por el motor de física. | Reduce la cantidad de juntas que se crean o se destruyen. |
Simulación/físicaSteppedTotal/físicaStepped | Ejecuta la simulación de física. | Reduce la cantidad y la complejidad de los cuerpos físicamente simulados. |
Simulación/físicaSteppedTotal/físicaStepped/SpacialFilter/filterStep | Actualiza las islas de simulación, alineando las partes según la propiedad de la red, la simulación local. Las islas son grupos no interactuantes de partes que se pueden simular de forma independiente. | Evite configurar la propiedad de la red con frecuencia. Mantenga los grupos de partes lo suficientemente lejos uno del otro para que se puedan simular separadamente. |
Simulación/físicaSteppedTotal/físicaStepped/worldStep/stepContacts | Actualiza contactos entre objetos. | Reduce la cantidad de cuerpos que chocan a la vez, o usa cajas de colisión más simples. Los cubos son mejores que las rejillas complejas. |
Simulación/físicaSteppedTotal/físicaStepped/worldStep/stepWorld O stepWorldThrottled | Soluciona ecuaciones de física relacionadas con conectores, flotabilidad y Humanoids . Cuando el motor está sobrecargado y no puede simular todo en tiempo real, algunos pasos pueden ser acelerados (stepWorldThrottled) y solo se simulan "ensambles de tiempo real" como Humanoids . | Depende de dónde se va el tiempo según las tres siguientes fases: stepContacts: Narrow Phase Collision DetectionGeometry tests. Solver step: Integrar tiempo y resolver colisiones y otras limitaciones updateBroadprice: actualizar posiciones de montajes en el sistema de detección de colisiones y encontrar posibles parejas de montaje de fase estrecha. |
Notificar movimiento de montajes | Ayuda a rastrear cuánto tiempo han estado dormidos los primitivos. | |
Simulación/físicaSteppedTotal/físicaStepped/interpolateRedes de montaje | Interpola montajes no controlados por este compañero de red. | Establece el propietario de las partes a este compañero para reducir esto; sin embargo, esto generalmente causará que se realice más trabajo físico en otras partes. |
Simulación/manejoFallenParts | Elimina las partes que han caído debajo de Workspace/FallenPartsDestroyHeight. | Baja la altura de destrucción o reduce la cantidad de partes que caen a la altura de destrucción. |
Heartbeat/heartbeatInternal/workspaceOnHeartbeat/updateVisuallySleeping | Segunda parte de NotifyMovingAssemblies. | |
Heartbeat/RunService.Heartbeat | Ejecuta funciones conectadas a Class.RunService.Heartbeat``event.Talk para contactos de simulación y scripts. La descripción actual es lo suficientemente genérica para no estar equivocada | Reducir la cantidad o trabajo de las funciones conectadas a RunService.Heartbeat . |
mundoStep/Contactos de paso | Ayuda a simular la física a hacer muchos contactos a la vez. | Reduce el número de objetos que colisionan. |
Solver | Ayuda a la simulación de física a resolver lotes de movimiento de objetos. | |
Interpolación de mecanismo | Ayuda con InterpolateNetworkAssemblies. |
Interfaz de usuario
Etiqueta | Descripción | Consejos de rendimiento |
---|---|---|
Render/PreRender/UpdateInput | Actualiza y dispara todos los eventos relacionados con la entrada del usuario si el usuario ha realizado la entrada desde el último marco. | Esto es cuando los eventos relacionados con la entrada del usuario se desencadenar. Es importante intentar no hacer demasiado trabajo directamente a medida que obtenga la entrada. Considere hacer una cantidad mínima de trabajo para la entrada, y cargas de trabajo más grandes deben empujarse a otro hilo que ocurre más tarde. |
Render/PreRender/TweenService | Actualiza objetos siendo tweened using TweenService y llamadas completadas, como las utilizadas para TweenSize o TweenPosition . | Reduce el número de objetos que se muestran usando TweenService y asegúrese de que los llamados de regreso hagan el menor trabajo posible. |
Render/PreRender/UpdateUILayouts | Actualiza la posición y tamaño de los elementos de la interfaz de usuario. | Reduce la cantidad de elementos de UI que se están redimensionando o reposicionando dinámicamente, como los que se gestionan por UILayout . |
Heartbeat/TweenService | En el servidor, actualiza objetos con TweenService. En el cliente, esto se hace en un paso PreRender en lugar. | Reduce la cantidad de objetos tweened por TweenService . |