Paseo por el perfilador de microescala

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

Este paseo muestra cómo usar el MicroProfiler para encontrar un aspecto problemático de una experiencia y identificar la causa raíz.Descarga la experiencia, Abre desde el archivo en Studio, y sigue adelante.


Identifica el problema

  1. Después de abrir la experiencia en Studio, comience a probarla con F5 o el botón Reproducir .

  2. La velocidad de fotogramas se siente decente, pero no tan suave como debería ser para una experiencia de este tamaño y alcance.Navegue a la pestaña Ver y haga clic en Resumen debajo de Estadísticas.

    Debug stats summary showing 45 FPS.

    Tenga en cuenta que la tasa de fotogramas está por debajo de 60 fotogramas por segundo (FPS).

  3. Abre el MicroProfiler presionando CtrlAltF6 ( F6 ).

    The MicroProfiler after opening it.

    Tenga en cuenta que los tiempos de marco son consistentes —las barras tienen aproximadamente la misma altura—, por lo que lo que cause la baja tasa de marco se ejecuta en cada marco en lugar de ejecutarse ocasionalmente y causar picos de tiempo de marco.

  4. Pausa el MicroProfiler presionando CtrlP ( P ).Pausar con el atajo de teclado abre modo detallado.

  5. Haga clic y arrastre para desplazar el gráfico.Observe cómo una tarea específica en los hilos de trabajador parece estar utilizando mucho tiempo de procesamiento en comparación con el subprocesoprincipal.Pase el mouse sobre RunService.Stepped y observe cuánto tiempo tarda en Renderizar.

    Detailed mode with long labels for processes.
  6. Las barras apiladas en la línea de tiempo indican una jerarquía de código, así que mantén el desplazamiento en capas más bajas y más bajas para intentar identificar el problema.

    On-hover details for various processes, with LocalScript highlighted. On-hover details for various processes, with Raycast highlighted.

    Observe la etiqueta LocalScript que indica el nombre del script, y la etiqueta Raycast que indica que el problema podría estar relacionado con el intersección rayo-superficie, emisión de rayos.

Crear etiquetas de solución de problemas

Ahora que el MicroProfiler ha proporcionado un punto de partida, puedes solucionar el código problemático.

  1. Detén la prueba de reproducción y filtre la ventana del explorador para localscript encontrar el archivo.

    A view of filtering in the Explorer window.

    Una búsqueda de raycast indica que esta parte del código es probablemente la culpable de la mala ejecuciónde la experiencia:


    local RAYS_PER_SECOND = 1500
    local function onStepped()
    for _ = 1, RAYS_PER_SECOND do
    local startPosition = getRandomPosition()
    local endPosition = getRandomPosition()
    local direction = endPosition - startPosition
    Workspace:Raycast(
    startPosition,
    endPosition
    )
    end
    end
    RunService.Stepped:Connect(onStepped)

    En concreto, puedes ver que el código está lanzando 1,500 rayos por segundo en direcciones aleatorias.

  2. Para verificar que esta parte del código está causando el retraso de renderizado, envuelva el contenido de la función con debug.profilebegin() y debug.profileend() :


    local function onStepped()
    debug.profilebegin("Raycast Spam")
    for _ = 1, RAYS_PER_SECOND do
    local startPosition = getRandomPosition()
    local endPosition = getRandomPosition()
    local direction = endPosition - startPosition
    Workspace:Raycast(
    startPosition,
    endPosition
    )
    end
    debug.profileend()
    end

Confirma y soluciona el problema

  1. Comience a probar la experiencia y abra el MicroProfiler nuevamente.

  2. Observe cómo el MicroProfiler ahora muestra la etiqueta personalizada, indicando que esta función fue de hecho la causa raíz.

    MicroProfiler detailed view with 'Raycast Spam' visible.
  3. Detener la prueba de juego.

  4. Elimina o comenta la función onStepped() y la conexión RunService.Stepped:Connect(onStepped).

  5. Vuelva a probar la experiencia y verifique nuevamente el resumen de estadísticas de depuración.

    Debug stats summary showing 60 FPS.

    Observe la enorme mejora en la tasa de marco y la correspondiente caída en los tiempos de marco en el gráfico de MicroProfiler.