MicroProfiler

*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 en Roblox Studio y el cliente de Roblox. Proporciona información de tiempo visual detallada para todas las tareas del motor que se ejecutan durante un frame, como animar personajes, actualizar física, ejecutar scripts y renderizar geometría. Puedes identificar qué tareas se ejecutaron durante qué frame, cuánto tiempo tardaron esas tareas en ejecutarse y si alguna de ellas te hizo perder tus objetivos de tiempo de frame.

Tiempos de frame

Para usar el MicroProfiler, debes entender la relación entre tiempo de frame y tasa de frames.

  • El tiempo de frame es cuánto tiempo tardó un frame en renderizarse en pantalla, generalmente medido en milisegundos.
  • La tasa de frames es el número de frames renderizados en pantalla, generalmente medido en frames por segundo (FPS).

Tiempos de frame más bajos significan una tasa de frames más alta. Divide 1,000 milisegundos (1 segundo) por el tiempo de frame para obtener la tasa de frames.

Tiempo de frame promedioFrames por segundo
33.33 ms30 FPS
16.67 ms60 FPS
8.33 ms120 FPS
4.17 ms240 FPS

Sin embargo, para una jugabilidad fluida, no es suficiente tener una alta tasa de frames. Necesitas tiempos de frame consistentes. Por ejemplo, si 59 frames llegan en 10 milisegundos y un frame en 410 milisegundos, los jugadores perciben un gran y brusco tartamudeo, aunque el juego esté funcionando a 60 FPS. Si todos los frames tardan aproximadamente el mismo tiempo en renderizarse, tu juego se sentirá perceptiblemente más suave debido a esa consistencia, especialmente a tasas de frames más bajas.

El MicroProfiler se centra totalmente en el tiempo de frame. Su propósito es ayudarte a identificar picos de tiempo de frame y qué los causó.

Abrir el MicroProfiler

Abrir el MicroProfiler varía según la plataforma:

  • En el cliente móvil, abre el menú de Configuración y cambia el MicroProfiler a Activado. Luego, desde una máquina de desarrollo en la misma red, usa tu navegador web para navegar a la dirección IP y el puerto proporcionados.

    La interfaz de usuario del MicroProfiler en móvil.

    Esta captura de pantalla muestra una dirección IP de 172.18.56.105 y un puerto de 1338, por lo que navegas a 172.18.56.105:1338. Dependiendo de la configuración de red de tu dispositivo, podrías ver múltiples direcciones IP. Si una no funciona, prueba con la siguiente.

  • En el cliente de escritorio, presiona CtrlF6 (F6).

  • En Studio, presiona CtrlF6 (F6).

Generalmente, el cliente móvil es el mejor lugar para perfilar tu juego. La mayoría de los jugadores en Roblox utilizan teléfonos y tabletas, y estos dispositivos tienen fuertes limitaciones térmicas y de potencia que limitan su rendimiento. Si tu juego funciona bien en una tablet Android de gama media, casi con seguridad funcionará mucho, mucho mejor en un desktop de juegos.

Conceptos básicos del MicroProfiler

El MicroProfiler tiene dos componentes clave: el gráfico de barra de tiempo de frame y la línea de tiempo de tareas detalladas.

  • El gráfico de tiempo de frame se extiende por la parte superior de la interfaz y muestra cuánto tiempo tardó cada frame en renderizarse. Las barras más altas significan tiempos de frame más largos.
  • La línea de tiempo muestra todas las tareas individuales que se ejecutaron durante el frame. Las barras más anchas representan tareas que tardaron más en ejecutarse.

Un flujo de trabajo típico en el MicroProfiler es utilizar el gráfico de tiempo de frame para identificar un pico (una barra más alta) y luego usar la línea de tiempo para identificar qué tareas causaron el pico. Luego puedes consultar la Referencia de etiquetas para obtener información sobre la tarea y cómo mejorar su rendimiento.

Ejemplo de un pico de tiempo de frame.

Gráfico de tiempo de frame

La altura de cada barra indica el número de milisegundos que tardó en completarse el frame. Los frames más recientes están a la derecha. Pasa el ratón sobre un frame para obtener algo de información básica sobre el uso de CPU y GPU.

El gráfico de frames del Microprofiler, mostrando frames azules e información detallada de los frames.
  • Las barras naranjas son frames donde el Tiempo de Pared de Tareas excede el Tiempo de Pared de Renderizado. En estos frames, al menos uno de los threads de trabajo, que hacen cosas como ejecutar scripts, calcular física y reproducir animaciones, tardó más en ejecutarse que el thread de renderizado principal.

    Si el juego no está alcanzando tus objetivos de tiempo de frame y tiene un gran número de frames naranjas, las causas comunes son scripts, física y animaciones. Consulta Mejorar el rendimiento.

  • Las barras azules son frames donde el Tiempo de Pared de Renderizado excede el Tiempo de Pared de Tareas. En estos frames, el thread de renderizado principal tardó más que ninguno de los threads de trabajo.

    Si el juego no está alcanzando tus objetivos de tiempo de frame y tiene un gran número de frames azules, eso indica un cuello de botella de renderizado. Las causas comunes son una densidad excesiva de objetos, movimiento de objetos y iluminación. Consulta Mejorar el rendimiento.

  • Las barras rojas son frames donde se cumplen dos condiciones:

    • Tiempo de Pared de Renderizado excede Tiempo de Pared de Tareas
    • Tiempo de Espera de GPU es mayor a 2.5 milisegundos

    Las barras rojas son menos comunes que las naranjas y azules y son a menudo el resultado de una complejidad de objeto excesiva, tamaño de textura y efectos visuales. La optimización es similar a las barras azules. Consulta Mejorar el rendimiento.

Las tareas pequeñas al final de un frame pueden a veces afectar el Tiempo de Pared de Tareas y el Tiempo de Pared de Renderizado, lo cual es una buena razón para enfocarse más en el tiempo de frame que en el color del frame. No hay un "buen" color por el que esforzarse. Una mezcla de colores naranjas, azules y rojos no es problemática siempre y cuando estés alcanzando tus objetivos de tiempo de frame. Si no estás alcanzando tus objetivos de tiempo de frame, los colores pueden indicar dónde optimizar.

Línea de tiempo

  • Haz clic izquierdo y arrastra para desplazar la línea de tiempo. En una máquina con muchos núcleos de CPU, es posible que necesites desplazar hacia arriba o hacia abajo bastante para encontrar el thread que realiza una tarea específica.

    El lado izquierdo de la vista detallada del Microprofiler, con filas para threads.
  • Desplazar hacia arriba y abajo acerca y aleja la línea de tiempo. Combinado con las etiquetas en milisegundos en la parte superior de la línea de tiempo, puedes tener una idea de cuánto tiempo tardó una tarea en un sentido absoluto, pero también cuánto tiempo tardó en relación con otras tareas.

    La vista detallada del Microprofiler con numerosas etiquetas horizontales.
  • La superposición verde en el gráfico de barras indica el número de frames actualmente visibles en la línea de tiempo—tu nivel de zoom. Haz clic izquierdo en una barra de frame para saltar a esa posición en la línea de tiempo.

    Podrías tener que ajustar tu nivel de zoom, pero pasar el ratón sobre una barra resalta el frame en la línea de tiempo. Líneas gris claro delimitan los frames.

    El gráfico de barras del MicroProfiler con superposición verde para mostrar el nivel de zoom.
  • Las etiquetas que aparecen directamente debajo de otra etiqueta indican tareas que se realizan como parte de la tarea de nivel superior.

    En lugar de la tarea padre, generalmente quieres solucionar los problemas en las tareas hijas de peor rendimiento; una tarea padre no puede ser más corta que la suma de sus tareas hijas.

  • Haz clic derecho en una etiqueta para acercar la línea de tiempo exactamente a la duración de esa tarea.

  • Si la cantidad de información es abrumadora, usa el menú de Grupos o Threads para filtrar la línea de tiempo. Por ejemplo, podrías querer ver sólo las tareas de Renderizado en el thread principal.

    La vista en hover de una etiqueta, con Grupo destacado.
  • Usa CtrlF (F) para saltar a la ocurrencia de una tarea que ocupa más tiempo en el volcado. Por ejemplo, computeLightingPerform se ejecuta en cada frame del cliente. Si lo buscas en un volcado con 128 frames, puedes saltar al frame donde tardó más en completarse.

Threads

Como muchos programas, Roblox utiliza múltiples threads para realizar secuencias de tareas al mismo tiempo. El MicroProfiler muestra el nombre del thread en el lado izquierdo de la línea de tiempo.

El lado izquierdo de la vista detallada del Microprofiler, con filas para threads.

Hay tres tipos importantes de threads:

  • Principal ("RBX Main"): Maneja tareas de renderizado basadas en CPU. Procesa entradas, Humanoids, animaciones/tweening, propiedad de física, sonido y espera la reanudación de scripts. También actualiza las interfaces de Studio y coordina los otros threads.

  • Trabajador ("RBX Worker"): Ayuda al thread principal con redes, física y búsqueda de caminos. Debido a la cantidad de núcleos en las CPU modernas, probablemente tengas muchos threads de trabajadores, la mayoría de los cuales están en estado de sueño en cualquier momento.

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

    • Preparar: La información del thread principal se utiliza para actualizar los modelos de renderizado.
    • Realizar: Emitir comandos de renderizado, incluyendo interfaces 2D.
    • Presentar: Sincroniza con la GPU.

Perfiles de script personalizados

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


local RunService = game:GetService("RunService")
local function onPreSimulation()
debug.profilebegin("Trabajo Duro")
-- 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)
Muchas etiquetas en el MicroProfiler, con una etiqueta personalizada ocupando la mayor parte del tiempo de procesamiento.

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

Guardar datos de frame

Si deseas guardar un conjunto de datos de frames para revisión posterior (o para compartir con otra persona), utiliza el botón de Guardar en archivo. El MicroProfiler guarda los datos de frames en un archivo HTML independiente llamado microprofile-<fecha>-<hora>.html.

El botón guardar en archivo en la interfaz web.

En el cliente de escritorio o en Studio, usa el menú de Volcado. En ambos casos, el MicroProfiler guarda automáticamente el archivo en el directorio de registros de Roblox:

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

    Si utilizas la aplicación de Plataforma Universal de Windows (UWP), verifica \Users\<nombredeusuario>\AppData\Local\Packages\ROBLOXCORPORATION.ROBLOX_<hash>\LocalState\logs\.

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

Perfilar el servidor

Además de perfilar el cliente, puedes capturar volúmenes breves de actividad del servidor:

  1. En el cliente de escritorio, únete a un juego para el cual tienes permisos de edición.

  2. Abre la Consola del Desarrollador con CtrlF9 (F9).

  3. En el menú desplegable, selecciona MicroProfiler.

  4. En la pestaña Servidor, especifica el número de frames a capturar (máximo 60) y el número de segundos a retrasar antes de comenzar la captura (máximo 4).

  5. Haz clic en Iniciar grabación del servidor.

    La pantalla del MicroProfiler en la Consola del Desarrollador.

    Después de unos segundos, la Consola del Desarrollador proporciona la ruta al archivo, que es la misma ruta que un volcado estándar.

Funciones exclusivas de la web

El MicroProfiler tiene dos interfaces de usuario: la interfaz web (móvil y volúmenes) y la interfaz de escritorio (cliente y Studio). Recomendamos usar la interfaz web siempre que sea posible. En general, las dos funcionan de manera similar, pero la interfaz web tiene algunas funciones adicionales:

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

    La vista web del MicroProfiler con rayos X habilitados.
    • Los frames más claros dentro del gráfico de barras principal indican una mayor asignación de memoria.
    • Las porciones más claras de la barra de vista previa y las etiquetas más claras en la línea de tiempo indican porciones del frame con mayor asignación de memoria.
    • En modo Rayos X, presiona C para mostrar el tamaño total de las asignaciones de memoria en lugar del número de asignaciones.
  • Usa el menú de Exportar para exportar un gráfico de llama de CPU o memoria, una visualización especializada que agrega todas las pilas de llamadas incluidas en el volcado, mantiene la jerarquía padre-hijo y las dimensiona según la duración. Los gráficos de llama son especialmente útiles para identificar tareas que no te hacen perder tus objetivos de tiempo de frame (y, por lo tanto, son difíciles de notar), pero que se ejecutan con tanta frecuencia que su tiempo de procesamiento se vuelve significativo.

    El gráfico de llama del MicroProfiler en la interfaz web.

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

    El gráfico de llama del MicroProfiler en Studio.
  • Arrastra y suelta un segundo archivo de volcado en la interfaz web para generar un gráfico de llama de diferencia, que puede ayudarte a identificar mejoras o regresiones en el rendimiento de tu juego a lo largo del tiempo. Haz clic en Combinar y Comparar para exportar un nuevo archivo HTML.

    El generador de gráfico de llama de diferencia del MicroProfiler mostrando los lados izquierdo y derecho.

    El gráfico de llama de diferencia resalta el volcado (izquierdo o derecho) que consume más CPU o memoria, con colores más brillantes que indican una diferencia mayor.

    El gráfico de llama de diferencia del MicroProfiler.

Funciones exclusivas de escritorio

En la línea de tiempo de escritorio, haz clic izquierdo en una etiqueta para añadirla a un gráfico de líneas en la parte inferior derecha. El gráfico muestra el tiempo que la tarea toma en cada frame. Usando este gráfico, puedes probar el rendimiento de solo ciertas tareas en tu juego. Cuando hayas terminado, haz clic derecho en el gráfico para ocultarlo.

El gráfico que muestra cuánto tiempo toman las tareas por frame.

Este gráfico está sincronizado con las barras del profiler principal. El rango de frames actualmente seleccionado se resalta en verde en el gráfico. También puedes hacer clic en cualquier parte de este gráfico para volver a centrar la vista del profiler principal en ese frame específico, lo cual es útil para encontrar picos en la vista detallada.

©2026 Roblox Corporation. Roblox, el logotipo de Roblox y "Powering Imagination" son algunas de nuestras marcas registradas y no registradas en los Estados Unidos y otros países.