MicroProfiler Guía de usuario

*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 tutorial muestra cómo usar el MicroProfiler para encontrar un aspecto problemático de una experiencia y identificar la causa raíz. Descargue la experiencia, Abra desde el archivo en Studio, y siga.


Identificando el problema

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

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

    Debug stats summary showing 45 FPS.

    Nota que la tasa de marco está por debajo de 60 marcos por segundo (FPS).

  3. Abre el MicroProfiler presionando CtrlAltF6 ( 1> ⌥1> 3> F6 3> ).

    The MicroProfiler after opening it.

    Nota que los tiempos de marco son consistentes — las barras son aproximadamente del mismo tamaño —, por lo que cualquier cosa que esté causando la baja tasa de marco está ejecutando cada marco en lugar de ejecutar ocasionalmente y causar picos de tiempo de marco.

  4. Pausa el MicroProfiler presionando CtrlP ( P ). Pausando con el atajo de teclado se abre 2> modo detallado2> .

  5. Haga clic y arrastre para acotar el gráfico. Observe cómo una tarea particular en los hilos de trabajo parece estar usando mucho tiempo de procesamiento en comparación con el subprocesoprincipal. Pase el cursor sobre RunService.Stepped y observe cuánto tiempo está tardando en Renderizar.

    Detailed mode with long labels for processes.
  6. Las barras acumuladas en el tiempo muestran una jerarquía de código, así que mantenga el cursor en las capas inferiores y inferiores para intentar identificar el problema.

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

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

Creando etiquetas de solución de problemos

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

  1. Detenga la prueba de juego y filtre la ventana Explorer para encontrar el archivo.

    A view of filtering in the Explorer window.

    Una búsqueda para 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 particular, puede ver que el código está castigando 1,500 rayos por segundo en direcciones aleatorias.

  2. Para verificar que esta parte del código está causando el retraso de renderizado, envuelve 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

Confirmando y solucionando el problema

  1. Comience a probar la experiencia y abra el MicroProfiler de nuevo.

  2. Nota cómo el MicroProfiler ahora muestra la etiqueta personalizada, indicando que esta función era en realidad la causa raíz.

    MicroProfiler detailed view with 'Raycast Spam' visible.
  3. Detén la prueba de juego.

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

  5. Comience a probar la experiencia nuevamente y revise el resumen de estadísticas de diagnóstico.

    Debug stats summary showing 60 FPS.

    Nota la gran mejora en la tasa de fotogramas por segundo y la correspondiente disminución en los tiempos de fotograma en el gráfico MicroProfiler.