Identificación de problemas de rendimiento

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

Identificar problemas de rendimiento generalmente significa perforar una de tres categorías: tasa de marco (计算)、记忆或 tiempo de carga。

Roblox tiene una serie de herramientas para identificar problemas de rendimiento, algunas de las cuales están disponibles en el cliente Roblox (y por lo tanto en Studio) y algunas de las cuales solo están disponibles en Studio. Mientras que puede observar el comportamiento del cliente directamente, debe usar herramientas para diagnosticar problemas del servidor.

Herramientas de diagnóstico

HerramientaDescripciónUbicaciónAtajo de atajoEntorno
Consola del desarrolladorUna consola con mensajes de registro en tiempo real, errores y información detallada sobre el ejecucióndel memoria, la red y el script. Es útil para ver el consumo de memoria, las estadísticas de salud del servidor clave y el rendimiento del script y para lanzar el cliente o servidor MicroProfiler.StudiosF9Sesiones en vivo, pruebas de Studio
MicroProfilerUna herramienta de diagnóstico que muestra cuánto tiempo de tiempo de ejecución se gasta en cada marco. Puede generar dump para el análisis que muestra un análisis preciso de cada marco, lo que lo hace útil para identificar el problema de rendimiento específico que está causando el problema. Puedes ejecutar el profiler en el cliente o el servidor, dependiendo de cuál tenga un problema.En la experiencia Control de Ctrl Alt F6 ( ⌘ 1> ⌥ 1> 3> F63> ) Sesiones en vivo, pruebas de Studio
Barra de Estadísticas de RendimientoUna barra de herramientas con estadísticas de rendimiento básicas, incluidas las estadísticas de memoria, CPU,GPU, datos de red enviados y recibidos y el tiempo de ping.En la experienciaCtrl AltF7 ( 0>⌥0> 2> F72> )Sesiones en vivo, pruebas de Studio
Estadísticas de diagnósticoCapas con información detallada alrededor de gráficos, física, tráfico de red y FPS.En la experienciaMayús F1 , MayúsF2 , 1>Mayús1> 3>F43> , 6>Mayús6> 9>F59>Sesiones en vivo, pruebas de Studio
Panel de rendimientoUn panel con gráficos de agregación para el uso de memoria del cliente y del servidor, la puntuarde marco del cliente, la frecuencia del servidor y las tasas de colisión en tiempo real. Es útil para analizar los patrones de rendimiento a lo largo del tiempo. Ver Monitoreo de rendimiento .Interfaz de creaciónN/ASesiones en vivo

Cálculo del servidor

El latido del servidor está limitado a 60 FPS para todas las experiencias, por lo que los valores más bajos pueden indicar un problema de rendimiento. Para ver el latido del servidor:

  • Con la Consola de Desarrollador - En la pestaña Trabajos del Servidor, expanda la fila Corazón late y verifique el valor 2>Pasos por segundo2>, que representa el latido del corazón de su experiencia.

  • Con el servidor MicroProfiler - Mira la longitud de cada marco para ver si algunos están tardando más de 16.67 ms.

Otro síntoma de degradado del latido del servidor es la mayor latencia (comúnmente conocida como ping). Cuanto más tiempo toma el servidor para completar sus tareas cada marco, más tiempo toma para procesar los datos de red enviados y recibidos de los clientes. Para ver el promedio de ping para todos los jugadores conectados a un servidor, ve a la pestaña Estadísticas del servidor en la consola del desarrollador.

Computo del Cliente

La tasa de marco del cliente predeterminado es de 60 FPS. Sin embargo, los usuarios pueden aumentar su tasa de marco hasta 240 FPS.

La tasa de fotogramas difiere wildly entre dispositivos. Por ejemplo, un PC de gama alta puede ser capaz de "brutalizar" un problema de cálculo y solo experimentar un tasa de fotogramas imperceptible. Si prueba en dispositivos más antiguos, los problemas tienden a ser más severos y por lo tanto son más fáciles de notar.

Para comprobar la tasa de fotogramas de tu experiencia:

  • En el cliente, presione ShiftF5 para mostrar el resumen de estadísticas de diagnóstico.

  • En la pestaña Ver del Studio, seleccione Estadísticas > Resumen para habilitar las estadísticas de diagnóstico.

  • Con el MicroProfiler, puede verificar el gráfico para ver si el marco toma más tiempo que 16.67 ms.

Memoria

Hay varias formas de verificar el uso de memoria para una experiencia:

  1. Abra la Consola del desarrollador y cambie a la Memoria pestaña. Esta pestaña le da una descripción de cómo se está asignando la memoria. Usa el cliente en lugar de Studio para obtener las readouts más precisas.
  2. Habilita la vista Estadísticas de rendimiento desde el menú de configuración en el cliente para ver un overlay con el uso total de memoria del cliente.

El uso de memoria alto no es necesariamente indicativo de un problema, pero algunas indicaciones de que puede que necesite investigar más son:

  • Un porcentaje significativo de clientes que se muestran en el Panel de rendimiento , en particular un tíquete inesperado que coincida con una actualización. Algunos porcentajes de clientes se esperan, pero deberías investigar si tus tasas de crashes aumentan por encima del 2-3%.
  • Un error ocurre durante la prueba en un dispositivo que quieres que Soportetu experiencia.
  • El uso de memoria de tu servidor supera los 3 GB.

Una gran parte del consumo de memoria de una experiencia en el cliente es de recursos, como imágenes y mallas, cargados en la memoria del gráfico para que se puedan renderizar. En la consola del desarrollador , puedes ver el consumo de memoria consumido por los recursos bajo las siguientes etiquetas:

  • GraphicsMeshParts - Gráficos de memoria consumidos por los mallas.
  • Textura de gráficos - Gráficos de memoria consumidos por las texturas.

Cargar veces

No hay herramientas integradas para verificar los tiempos de carga, pero porque no requieren la precisión de milisegundos, un temporizador es generalmente todo lo que necesitas para entender tu conjunto de datos actual y verificar si has hecho una mejora sustantiva. Puedes usar un script de cliente en ReplicatedFirst para obtener una idea de cómo tus cambios afectan los tiempos de carga, pero este script no proporciona una medición completa y de pun


local startTime = os.clock()
game.Loaded:Connect(function()
local loadTime = os.clock() - startTime
local roundedLoadTime = math.round(loadTime * 10000) / 10000 -- cuatro lugares decimales
print("Game loaded in " .. roundedLoadTime .. " seconds.")
print("Number of instances loaded: " .. #game.Workspace:GetDescendants())
end)

Para obtener más información, habilite Configuración de Studio > Red > Imprimir el tamaño de la unión , que imprime las 20 instancias principales por tamaño y un porcentaje de descuento por tipo de instancia cuando comienza la experiencia en Studio.