Lo siguiente es una lista de etiquetas dadas por MicroProfiler, separadas por introducir. Comprender estas etiquetas ayudará a determinar la causa e identificar posibles soluciones para el código no optimizado. Las tablas contienen etiquetas, descripciones y consejos de rendimiento para mejorar el rendimiento y optimizar su experiencia.
AI/Navegación
Etiqueta | Descripción | Consejo de rendimiento |
---|---|---|
rasterizarAzulejo | Actualiza los azulejos de navegación necesarios para una solicitud de búsqueda de caminos, generalmente seguidos de computePath que requiere que esos azulejos estén actualizados. Sigue el NavigationJob / preprocesamiento en el subprocesoprincipal. | Reduce el número de invalidaciones de azulejos de búsqueda de caminos, ya que esto hace que esos caminos necesiten ser recomputados. Esto es causado por el movimiento de partes no navegables. |
camino de compute | Calcula caminos, típicamente después de rasterizeTile . | Reduce el número y la extensión del mundo de ComputePath llamadas. Intenta reutilizar rutas para múltiples agentes si se espera que comiencen / terminen desde ubicaciones aproximadamente similares. |
Preprocesar/ObtenerSuperposición de Primicias | Recoge la geometría del mundo para cada azulejo de búsqueda de caminos y programa las tareas de rasterización que ejecutará el subprocesode búsqueda de caminos. | Reducir el número de piezas. |
Animación
Etiqueta | Descripción | Consejo de rendimiento |
---|---|---|
Simulación/juegoStepped | Procesando objetos específicos del juego como Humanoids , Animations y recordatorios de latidos del corazón | |
Simulación/GameStepped/StepLegacy | Humanoid cambios de estado y movement.Called paso Humanoide en el servidor ahora (versión paralela) | Deshabilita o reduce los estados Humanoid en NPCs, si los tienes. El estado de escalera es lo más importante para desactivar. Reduce las devoluciones a los cambios de estado como Humanoid.Died o Humanoid.Running |
Simulación/juegoStepped/stepAnimación | Animators avanzará en las animaciones que reproduce actualmente. | Reduce la cantidad de Animators o articulaciones animadas para reducir la carga de trabajo de este paso. Reduce el número de devoluciones a eventos de animación como AnimationTrack.KeyframeReached o AnimationTrack.Ended |
Simulación/GameStepped/RunService.Stepped | Ejecuta funciones conectadas al evento RunService.Stepped. | Reduzca la cantidad o la carga de trabajo de las funciones conectadas a este evento. Considere retrasar o reemplazar las costosas calculaciones. Considere distribuir la computación en múltiples fotogramas. |
Audio
Etiqueta | Descripción | Consejo de rendimiento |
---|---|---|
Sonido | Procesando sonido, audio: ubicaciones, efectos, volúmenes, etc. | |
DesarrolladorTag_Sounds | Sonidos en memoria: generalmente sonidos breves que son lo suficientemente pequeños como para ir en la memoria. Por lo general, música breve de un disparo, no música de forma larga. | Usa menos sonidos cortos |
DesarrolladorTag_StreamingSounds | stream/StreamingSounds: estos son sonidos más grandes que se transmiten desde el disco. Generalmente archivos de música de forma más larga. | Usa menos sonidos largos. |
Creación de redes
Etiqueta | Descripción | Consejo de rendimiento |
---|---|---|
Recepción de Paquete Neto | 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/Paquetes de Procesos | Procesa el contenido de los paquetes de red, como el movimiento, las invocaciones de eventos y los cambios de propiedades. | Reduce el número o tamaño de los objetos que se están replicando, o haz esto en pasos incrementales. Puede aumentar si el tamaño del mapa aumenta, ya que los mapas más grandes tienden a tener más actividad general. |
Asigne ancho de banda y ejecute remitentes/Enviar remitentes de física y touchSenders | Envía datos sobre la actividad en la experiencia. | Reducir la cantidad de objetos en movimiento y / o toques. Consulte las siguientes secciones. |
Asignar ancho de banda y ejecutar remitentes / Dispatch StreamJob | Envía regiones específicas correspondientes a clientes específicos en la función "Streaming." | Reducir el radio de transmisión mínimo y objetivo. |
Asigne ancho de banda y ejecute remitentes/enviar remitentes de datos | Envía cambios de propiedad, eventos remotos, cambios de estado de Humanoide, inicio/parada de animación. | Reducir el número de cambios replicados en el aplicación de modeladode datos |
Replicador SendCluster | Envía datos de terreno a los clientes. | Reduce la cantidad o el tamaño de los cambios de terreno. |
Mega Trabajo de ModelCompleteness | Solo servidor: la integridad es un concepto interno. Cuando los modelos se envían completos, se envían los eventos de integridad del modelo. | Añade o elimina menos instancias. |
DeserializarPaquete | Procesamiento de paquetes de red de bajo nivel. Prepara para los paquetes de proceso del replicador. | Envía menos actualizaciones. |
Rendimiento
Etiqueta | Descripción | Notas de rendimiento |
---|---|---|
Preparar | La información se recoge del hilo principal y actualiza varias estructuras de datos utilizadas para la representación. Esto bloquea los hilos de simulación, por lo que debe ser lo más pequeño posible. | Consulte las etiquetas de Preparar a continuación. |
Preparar/Pass3dAdorn | Renderización de varios adornos de objeto, como etiquetas de texto sobre objetos. Este paso puede incluir la irradiación para determinar si dichos objetos son visibles. | Reduce el número de objetos adornados visibles, como BillboardGuis , Humanoid etiquetas de nombre / salud, etc. |
Preparar/Pass2D | Listo para renderizar la interfaz de usuario 2D (tanto el jugador como la interfaz de usuario de Roblox). | Reducir la cantidad o complejidad de los elementos de la interfaz de usuario. |
Preparar/Actualizar Partes Inválidas | Actualiza partes que tuvieron algunas 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, divídelo en fotogramas. |
Preparar/ActualizarInvalidateFastClusters | Prepara la geometría, típicamente "FastClusters" usada para renderizar Humanoids. Los sub-marcadores especifican el número de partes, vértices y el tamaño de los vértices. | Reduce el uso de 'Humanoides' en objetos que no sean Humanoids . Esto no debe usarse para acortar las llamadas de dibujo, ya que los FastClusters consumen mucho más almacenamiento. |
Preparar/Actualizar Partes Dinámicas | Actualiza las posiciones de Humanoids , vehículos y otras instancias móviles para renderizar. | Reduce el número o la complejidad de mover Humanoids o vehículos visibles. Combinar partes del mismo material y color en una unión o MeshPart puede ayudar con esto. |
Preparar/Actualizar Clusters Instanciados | Prepara geometría estática que usa renderizado de instancias (partes y partes de malla). Las etiquetas "Clusters" e "Instances" indican el número actualizado. | Usa menos malla general y variación de material. También puedes crear grupos usando objetos que tengan apariencias similares: tamaño, color, material. |
Ejecutar | Cuando se crean y emiten comandos de renderizado reales. | Consulte las etiquetas de rendimiento a continuación. |
Realizar/llenar GuiVertices | Renderización de interfaz de usuario. Llena los buffers con vértices de interfaz de usuario para adornos. La etiqueta "Gui count" indica la cantidad de elementos en la lista de renderizadores. | Si el costo es alto, reduzca la cantidad de interfaz de usuario que se actualiza desactivándola cuando no se esté usando asegurándose de que esté oculta correctamente. |
Ejecutar / Escena / consulta FrustumOrdered | Aplica la eliminación de frustum para que los objetos no visibles no se rendericen. | Si hay un alto costo, significa que hay muchos elementos. Tal vez use algunas mallas más grandes donde una sola malla tenga más detalles en lugar de muchas piezas individuales pequeñas. |
Actuar/Escena/ComputeLightingActuar | Calcular la iluminación cerca de la cámara. | Manipula el número de fuentes de luz o mueve la cámara menos para reducir el tiempo que tarda en recalcular la iluminación. |
Actuar/ Escena/ ComputeLightingPerform/UpdateLightGrid | Actualiza la iluminación del voxel. Las luces solo se renderizan en el modo Voxel Lighting, pero la ocupación y la luz del cielo se calculan en todos los modos de iluminación. | Si la actualización de la ocupación del bloque tarda demasiado, considere usar una geometría de resolución más baja o reducir el número de partes. Si los otros sub-marcadores tardan demasiado, considere reducir el número de luces. Considere el uso de la geometría de fundición sin sombras para objetos que se mueven e invalidan la ocupación. |
Ejecutar / Escena / Brillo, Corrección de color, MSAA, SSAO y SSAOAplicar | Renderización de post-procesamiento. | Reducir el número de efectos de post-procesamiento, por lo general esto no es significativo. |
Ejecutar / Escena / UI | Renderización de interfaz de usuario. En Id_Screen, hay una etiqueta con el número de lotes, materiales y triángulos usados. | Reducir el número de elementos visibles de la interfaz de usuario. El uso de CanvasGroups puede ayudar a expensas del aumento del uso de memoria. |
Actuar/Presentar | Espera a que la GPU termine de renderizar el fotograma anterior; en realidad problemas con los comandos de renderizado a la GPU; se ocupa de recursos gráficos de bajo nivel. | Reducir la complejidad de la escena en general. Si este paso lleva mucho tiempo, es posible que esté limitado por la GPU. |
Realiza/Presente/EsperaHasta Completado | Espera a que la GPU termine de renderizar el fotograma anterior. | Si esto generalmente sucede mucho, entonces la cantidad de cosas renderizadas es demasiado alta. FRM ayuda a equilibrar esto, pero si sigue siendo alto, intente usar menos detalle. |
Scripts
Etiqueta | Descripción | Consejo de rendimiento |
---|---|---|
Renderizar/PreRenderizar/fireBindToRenderSteppedCallbacks | Ejecutar funciones destinadas a renderizar paso a través de RunService:BindToRenderStep() . | Asegúrese de que las funciones en los scripts usando RunService:BindToRenderStep() hagan el menor trabajo posible. |
Renderizar/PreRenderizar/RunService.Renderizado | Ejecuta funciones conectadas al evento RunService.RenderStepped. | Similar a BindToRenderStep, asegúrate de que las funciones que usan este evento hagan el menor trabajo posible. |
EsperandoTrabajo de script híbrido | reanuda los scripts que esperan usando esperar. marcos. | Este paso tiene un presupuesto de tiempo de ejecución para ejecutar scripts en espera, por lo que si tiene demasiados scripts en espera o scripts con un tiempo de ejecución largo antes de rendirse, este paso puede tomar varios |
GGC de Luna | Ciclo de recolección de basura de Lua. La etiqueta proporciona estimaciones de almacenamiento sobre la asignación total y cuánto se desasignó. | Piscina mesas lua y otros objetos coleccionables o tratar de reducir la creación de tablas temporales o cadenas |
Latido del corazón/RunService.Heartbeat | Ejecuta funciones conectadas al Class.RunService.Heartbeat``event.Talk a los contactos de simulación y scripts. La descripción actual es lo suficientemente genérica como para no estar equivocada | Reduce la cantidad o la carga de trabajo de las funciones conectadas a RunService.Heartbeat. |
Simulación
Etiqueta | Descripción | Consejo de rendimiento |
---|---|---|
Propiedad de física distribuida | Determina si el servidor o un cliente tiene autoridad sobre ciertas instancias, como partes. | Propiedad de física distribuida. |
Simulación/conjunto | Actualiza un árbol de objetos conectados (ensambles) utilizados por el motor de física. | Reduce la cantidad de articulaciones que se crean o destruyen. |
Simulación/física | Ejecutar la simulación de física. | Reducir la cantidad y complejidad de los cuerpos simulados físicamente. |
físicaPasado/Filtro Espacial/paso de filtro | Actualiza las islas de simulación, organizando partes según la propiedad de la red, simulación local. Las islas son grupos no interactivos de partes que se pueden simular de forma independiente. | Evita establecer la propiedad de la red con frecuencia. Mantén grupos de partes lo suficientemente alejados unos de otros para que puedan ser simulados por separado. |
físicaStepped/worldStep/stepContacts | Actualiza los contactos entre objetos. | Reduce la cantidad de cuerpos que colisionan a la vez, o usa cajas de colisión más simples. Los cubos son mejores que las mallas complejas. |
físicaStepped/worldStep/stepWorld O stepWorldThrottled | Soluciona ecuaciones de física relacionadas con conectores, flotabilidad y Humanoids . Cuando el motor está sobrecargado e incapaz de simular todo en tiempo real, algunos pasos pueden ser acelerados (stepWorldThrottled) y solo se simulan "ensamblajes en tiempo real" como Humanoids. | Depende de dónde esté yendo el tiempo basado en las siguientes tres fases: stepContacts: pruebas de geometría de detección de colisión de fase estrecha. Solver step: integra el tiempo y resuelve colisiones y otras restricciones updateBroadphase: actualiza las posiciones de las asambleas en el sistema de detección de colisión y encuentra pares de fases estrechas posiblemente en colisión. |
NotificarAsambleas en Movimiento | Ayuda a rastrear cuánto tiempo han estado durmiendo los primitivos. | |
Simulación/Interpolación de Conjuntos en Red | Interpola los conjuntos que no están bajo el control de este compañero de red. | Establece al propietario de la red de piezas a este igual para reducir esto; aunque esto generalmente hará que se haga más trabajo de física en otro lugar. |
Simulación/manipulación de piezas caídas | Elimina las partes que han caído por debajo de Workspace/FallenPartsDestroyHeight. | Baja la altura de destrucción o reduce la cantidad de piezas que caen a la altura de destrucción. |
Latido del corazón/HeartbeatInternal/updateVisualmenteDormir | Segunda parte de NotifyMovingAssemblies. | |
Latido del corazón/RunService.Heartbeat | Ejecuta funciones conectadas al Class.RunService.Heartbeat``event.Talk a los contactos de simulación y scripts. La descripción actual es lo suficientemente genérica como para no estar equivocada | Reducir la cantidad o carga de trabajo de las funciones conectadas a RunService.Heartbeat . |
worldStep/Contactos de paso | Ayuda a la simulación física paso muchos contactos a la vez. | Reducir el número de objetos en colisión. |
SolverBatch | Ayuda a la simulación física a resolver lotes de movimiento de objetos. | |
Mecanismo de Interpolación | Ayuda con InterpolateNetworkAssemblies. |
UI
Etiqueta | Descripción | Consejo de rendimiento |
---|---|---|
Renderizar/PreRenderizar/ActualizarEntrada | Actualiza y dispara todos los eventos relacionados con la entrada del usuario si el usuario ha realizado la entrada desde el último fotograma. | Esto es cuando los eventos relacionados con la entrada del usuario se desencadenar. Es importante tratar de no hacer demasiado trabajo directamente a medida que obtengas la entrada. Considere hacer una cantidad mínima de procesamiento para la entrada, y las computaciones más grandes deben ser empujadas a otro hilo que sucede más tarde. |
Renderizar/PreRenderizar/TweenService | Actualiza los objetos que se están alterando usando TweenService y llama devoluciones de finalización, como las usadas para TweenSize o TweenPosition. | Reduce el número de objetos que se intercalan usando TweenService y asegúrate de que las devoluciones hagan el menor trabajo posible. |
Renderizar/PreRenderizar/ActualizarUILayouts | Actualiza la posición y tamaño de los elementos de la interfaz de usuario. | Reduce la cantidad de elementos de la interfaz de usuario que se están redimensionando o reposicionando dinámicamente, como los gestionados por UILayout . |
Latido del corazón/TweenService | En el servidor, actualiza los objetos entrelazados con TweenService. En el cliente, esto se hace en un paso de PreRender en su lugar. | Reduce la cantidad de objetos entrelazados en TweenService . |