Perfilador micro

*Este contenido se traduce usando la IA (Beta) y puede contener errores. Para ver esta página en inglés, haz clic en aquí.

El MicroProfiler es una herramienta de optimización de rendimiento y solución de problemas disponible en Roblox Studio y en el cliente de Roblox.Proporciona información de tiempo detallada para las tareas del programador de tareas llamadas etiquetas.

  • Para una lista de tareas comunes, consulte la referencia de etiqueta .
  • Para un ejemplo paso a paso de cómo utilizar el MicroProfiler para identificar un problema de rendimiento, consulte el recorrido del MicroProfiler.

MicroProfiler básicos

Para abrir el MicroProfiler, presione CtrlAltF6 ( F6 ) en Studio o en el cliente.También puedes usar el menú de configuración en el cliente.

Cuando está abierto, una barra de menú es visible en la parte superior del ventanilla3D.En el modo predeterminado, un gráfico de barra móvil muestra el tiempo utilizado en cada marco del programador de tareas.

The Microprofiler frame graph, showing blue frames and detailed frame information.

Las barras deben estar generalmente alrededor del medio del gráfico, pero podrías ver picos repentinos (aumentos rápidos de valores).Las puntas indican que se tardó más tiempo en realizar alguna tarea, generalmente debido a un aumento de la carga de trabajo.Por instancia, crear muchas piezas móviles requiere más trabajo de la simulación de físicas, que luego necesita más tiempo para procesar el movimiento y los contactos de las piezas.La siguiente imagen muestra un ejemplo de un pico:

The Microprofiler with several bars higher than others.

Para pausar la grabación de marcos, presione CtrlP ( P ) o haga clic en Pausar en la barra de menú.Mientras está en pausa, aparece una línea de tiempo y puedes navegar por las imágenes haciendo clic o arrastrando por el gráfico.

Para un resumen completo de las diversas vistas y cómo navegar por la interfaz de MicroProfiler, vea modos de MicroProfiler.

Subprocesos

Como muchos programas, Roblox usa múltiples hilos para realizar varias secuencias de tareas al mismo tiempo.En el modo detallado del MicroProfiler , puedes ver etiquetas para cada hilo en la izquierda.

The lefthand side of the Microprofiler detailed view, with rows for threads.

Hay tres tipos principales de hilos:

  • Principal/Render : Tal vez de forma poco intuitiva, se ejecuta en la CPU.Procesa la entrada, Humanoids , animaciones/tweening, propiedad de física, sonido y la reanudación del guión de espera.También actualiza las interfaces de Studio y coordina los otros hilos.

  • Trabajador ("Trabajador de RBX": ayuda al hilo principal con redes, física y búsqueda de rutas.Debido al número de núcleos en las CPUs modernas, es probable que tenga muchos hilos de trabajador, la mayoría de los cuales están en un estado de sueño en cualquier momento.

  • Renderizar ("GPU"): Sigue una lógica de "preparar, realizar, presentar". Se comunica con la unidad de procesamiento de gráficos (GPU) del dispositivo.

    • Preparar: la información del hilo principal se usa para actualizar los modelos de renderizado.
    • Ejecutar: Emitir comandos de renderizado, incluidas interfaces 2D.
    • Presente: se sincroniza con la GPU.

Perfiles personalizados

Si tus scripts están ejecutando tareas complicadas, puedes perfilar las partes críticas del código para asegurarte de que no estén tardando demasiado.Envuelve el código en debug.profilebegin() y debug.profileend() para establecer el tiempo de todo lo que se haya hecho entre esas llamadas de función y crear una etiqueta en la línea de tiempo de MicroProfiler.

Script de trabajo duro

debug.profilebegin("Hard Work")
-- Código para ser perfilado
debug.profileend()
A custom label on the detailed view of the MicroProfiler.

Hay una cantidad limitada de memoria disponible para las etiquetas de MicroProfiler.Si esta memoria se agota, las etiquetas de perfilador personalizado pueden no aparecer como un nombre significativo en la línea de tiempo.Usa menos etiquetas para evitar este problema.Si ya no necesitas perfilar una sección de tu código, comenta o elimina las llamadas a estas funciones.

Ejemplo

El ejemplo de código a continuación conecta una función falsa al evento RunService.PreSimulation, que se ejecuta en cada marco.Cualquier cosa que se haya hecho esto a menudo debería ejecutarse con la mayor eficiencia posible, por lo que esta función es un buen candidato para el perfilado.


local RunService = game:GetService("RunService")
local function onPreSimulation()
debug.profilebegin("Hard Work")
-- Ejemplo de trabajo duro: intercambiar dos variables 200,000 veces
local a, b = 0, 1
for _ = 1, 200000 do
a, b = b, a
end
debug.profileend()
end
RunService.PreSimulation:Connect(onPreSimulation)

Cuando ejecutas la experiencia y pausas el MicroProfiler ( CtrlP o P ), la etiqueta personalizada es visible bajo la etiqueta gameStepped .

Many labels on the MicroProfiler, with a custom label taking up the majority of the processing time.

Desde su duración en la línea de tiempo, puedes decir que la función está utilizando mucho tiempo de procesamiento en comparación con otras operaciones.

Guardar datos de marco

Si desea guardar un conjunto de datos de marco para su revisión posterior (o para compartir con otra persona), use el menú Exportar .El motor guarda los datos del marco en un archivo llamado microprofile-<date>-<time>.html en la carpeta de registros de Roblox.

  • En Windows, compruebe %LOCALAPPDATA%\Roblox\logs .

    Si usa la aplicación (app)de la plataforma de Windows universal (UWP), verifique \Users\<username>\AppData\Local\Packages\ROBLOXCORPORATION.ROBLOX_<hash>\LocalState\logs\ .

  • En macOS, compruebe ~/Library/Logs/Roblox .

Estos archivos HTML utilizan la misma interfaz de usuario web basada en el navegador como la conexión en vivo para dispositivos móviles y dump de servidor.

Dispositivos móviles de perfil

Para acceder al MicroProfiler desde el cliente móvil, tu dispositivo móvil debe estar conectado a la misma red como tu máquina de desarrollo .

Habilita el MicroProfiler en el menú Configuración de el dispositivo móvil. Después de habilitarlo, el menú muestra una dirección IP y un número de puerto.

A picture of the Settings menu on mobile, showing how to enable the MicroProfiler.

Por ejemplo, en la captura de pantalla anterior, la dirección es 192.168.1.166 y el puerto es 1338.Desde un equipo en la misma red, navegue a http://192.168.1.166:1338 para una versión web-based de la interfaz de usuario de MicroProfiler.

The MicroProfiler web view.

Perfilar el servidor

Además del cliente estándar MicroProfiler, puedes tomar breves copias de actividad del servidor usando el servidor MicroProfiler.

  1. En una experiencia para la que tienes permisos de edición, abre la consola de desarrollador con CtrlAltF9 .

  2. En el menú desplegable, seleccione MicroProfiler .

  3. En la sección Perfilador de servidor , especifique el número de fotogramas por segundo (máximo 60) y el número de segundos para perfilar (máximo 4).

  4. Haga clic en Iniciar grabación .

    The Developer Console MicroProfiler screen.

    Después de unos segundos, la consola de desarrollador proporciona el camino al archivo, que es el mismo camino que un dump estándar .

Usa la interfaz de usuario web

En general, la interfaz web de MicroProfiler funciona de manera similar a modo detallado, pero tiene algunas características adicionales:

  • Además de filtrar por grupo, puedes filtrar por subproceso.

  • Usa CtrlF / F para saltar a la ocurrencia de una tarea que ocupa la mayor parte del tiempo en el volcar.Por ejemplo, computeLightingPerform se ejecuta en cada marco.Si buscas en un dump con 128 marcos, puedes saltar al marco en el que se tardó más en completarse.

  • Usa el menú Rayo X para habilitar o deshabilitar la codificación de color para la asignación de memoria.

    The MicroProfiler web view with x-ray enabled.
    • Los marcos más ligeros dentro del gráfico de la barra principal indican una mayor asignación de memoria.
    • Las porciones más ligeras de la barra de vista previa y las etiquetas más ligeras en la línea de tiempo indican porciones del marco con una mayor asignación de memoria.
    • En el modo de rayos X, presione C para mostrar el tamaño total de las asignaciones de memoria en lugar del número de asignaciones.
  • Usa el menú Exportar para exportar un gráfico de llamadas de CPU o memoria, una visualización especializada que agrega todas las pilas de llamadas incluidas en el volcar, mantiene la jerarquía padre-hijo y las reduce según la duración.Los gráficos de llamas son especialmente útiles para identificar tareas que no toman particularmente mucho tiempo para ejecutarse (y por lo tanto son difíciles de notar), pero se ejecutan con tanta frecuencia que su tiempo de procesamiento se vuelve significativo.

    The MicroProfiler flame graph in the web UI.

    También puedes crear gráficos de llamas en Studio, aunque solo para scripts (tiempo de ejecución y asignaciones de memoria).En comparación con los gráficos de llamas basados en la web, los de Studio son de arriba hacia abajo en lugar de de abajo hacia arriba y soportan tiempos de captura dramáticamente más largos.

    The MicroProfiler flame graph in Studio.
  • Arrastra y suelta un segundo archivo de copia de seguridad a la interfaz de usuario web para generar un gráfico de llamas de diferencia, que puede ayudarte a identificar mejoras o regresiones en el rendimiento de tu experiencia con el tiempo.Haga clic en Combinar y comparar para exportar un nuevo archivo HTML.

    The MicroProfiler diff flame graph builder showing the left and right sides.

    El gráfico de llamas de diferencia destaca el dump (izquierda o derecha) que consume más CPU o memoria, con colores más brillantes que indican una diferencia más grande.

    The MicroProfiler diff flame graph.