Uso de memoria

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

Cada componente de construcción y script que agregues a tu experiencia consume memoria. Cuando el uso de memoria alcanza los límites del motor, el dispositivo o servidor del usuario puede fallar, por lo que necesitas monitorear activamente el uso.


La Consola de Desarrollador proporciona dos herramientas para monitorear el uso de memoria:

  • Memoria — Ver el consumo de memoria en tiempo real por categorías de uso, incluyendo tus componentes personalizados y los procesos internos del motor.

  • Heap de Luau — Crear instantáneas de la memoria en el heap, que se refiere a la asignación de memoria de tus scripts. Esta herramienta proporciona varias vistas para ayudarte a identificar la asignación de memoria actual y problemas desde diferentes perspectivas, como tipos de objetos y clases del motor. También te permite crear múltiples instantáneas para comparar diferencias en el uso de memoria a lo largo del tiempo.

Puedes abrir la consola durante una sesión de prueba o en un juego en vivo utilizando cualquiera de las siguientes formas:

  • Presiona F9.
  • Escribe /console en el chat.
  • Usa el menú del juego:
    1. Abre el Menú de Roblox en el juego.

    2. Selecciona la pestaña de Configuración.

    3. Desplázate hacia abajo hasta Consola de Desarrollo y haz clic en Abrir.

Memoria

La herramienta de Memoria categoriza y muestra el uso de memoria en tiempo real. Muestra el uso de memoria en MB de cada categoría y genera un gráfico sobre el cambio de uso a lo largo del tiempo.

Para ver la asignación de memoria:

  1. Abre la Consola de Desarrollador.

  2. Expande el desplegable de herramientas para seleccionar Memoria.

    Menú desplegable de todas las herramientas de la Consola de Desarrollador con la opción Memoria resaltada para selección.
  3. Expande el desplegable de cliente-servidor para seleccionar Cliente o Servidor.

  4. Navega por las categorías y elementos de uso de memoria. Si deseas ver el uso a lo largo del tiempo, expande la categoría para mostrar un gráfico.

    • CoreMemory — Uso de memoria por los procesos de construcción centrales del motor, incluyendo redes, avatares y elementos de GUI sobre los que no tienes control directo.

    • PlaceMemory — Uso de memoria basado en cómo construyes tu experiencia, incluyendo modelos, terrenos, partes, scripts y todos los demás elementos personalizados que agregues a tu experiencia.

      CategoríaDescripción
      HttpCacheActivos (imágenes, mallas, etc.) cargados desde servidores de Roblox y ahora mantenidos en un caché en memoria.
      InstancesInstances en el lugar.
      SignalsSeñales que se disparan entre instancias (un evento que se dispara en una instancia para activar un evento en otra instancia).
      LuaHeapMemoria heap para scripts centrales (scripts que se envían con el cliente de Roblox) y scripts personalizados.
      ScriptScripts de Luau.
      PhysicsCollisionDatos de colisión para simulaciones físicas.
      PhysicsPartsGeometría y cinética de física.
      GraphicsSolidModelsDatos gráficos para renderizar modelos sólidos.
      GraphicsMeshPartsGráficos para objetos MeshPart.
      GraphicsParticlesGráficos para sistemas de partículas.
      GraphicsPartsGráficos para partes.
      GraphicsSpatialHashRenderizado general.
      GraphicsTerrainGráficos para terreno.
      GraphicsTextureMemoria de texturas.
      GraphicsTextureCharacterMemoria de texturas para personajes.
      SoundsSonidos en memoria.
      StreamingSoundsSonidos en streaming.
      TerrainVoxelsVoxeles de terreno.
      TerrainPhysicsFísica del terreno.
      GuiMemoria utilizada por elementos comunes de GUI.
      AnimationMemoria utilizada para datos de animación, como poses y datos en caché de KeyframeSequence para animaciones de avatares.
      NavigationMemoria utilizada por estructuras de soporte para PathfindingService.
    • UntrackedMemory — Asignaciones de memoria que el sistema no puede atribuir fácilmente a una fuente particular.

    • PlaceScriptMemory — Uso de memoria de tus scripts con información sobre cómo los scripts individuales y las etiquetas de memoria personalizadas contribuyen al uso total de memoria.

    • CoreScriptMemory — Uso de memoria por scripts internos del motor sobre los que no tienes control directo.

    Entre estas categorías, PlaceMemory y PlaceScriptMemory son las más importantes para la optimización del rendimiento, porque te ayudan a entender cómo tus decisiones de construcción y scripting afectan el consumo de memoria y las áreas potenciales para la optimización. Para obtener más información sobre PlaceScriptMemory, utiliza la herramienta Heap de Luau para crear instantáneas y analizar la asignación de memoria por diferentes métricas.

Heap de Luau

La herramienta de Heap de Luau te permite crear instantáneas de la asignación actual de memoria en el heap, que se refiere a la memoria que los scripts de Luau utilizan para almacenar variables, tablas, funciones y otras estructuras de datos en tiempo de ejecución. Esta herramienta proporciona varias vistas para ayudarte a identificar problemas desde diferentes perspectivas, como tipos de objetos y clases del motor. También te permite crear múltiples instantáneas para comparar diferencias en el uso de memoria a lo largo del tiempo.

Crear instantáneas

Para crear una instantánea de tu asignación de memoria:

  1. Abre la Consola de Desarrollador.

  2. Expande el desplegable de herramientas para seleccionar LuauHeap.

    Menú desplegable de todas las herramientas de la Consola de Desarrollador con la opción LuauHeap resaltada para selección.
  3. Expande el desplegable de cliente-servidor para seleccionar Cliente o Servidor.

  4. Haz clic en el botón Crear Instantánea.

Analizar el uso de memoria

La herramienta proporciona muchas vistas sobre el uso de memoria de Luau:

  • Gráfico — Muestra un árbol de uso de memoria agregado, con cada nodo representando un objeto con memoria asignada.
  • Etiquetas de Objetos — Muestra tamaños de memoria y conteos por tipos de ejecución, como function, table, y thread.
  • Categorías de Memoria — Muestra tamaños de memoria y conteos por categorías de memoria asignadas por el motor. El motor asigna una categoría de memoria a un objeto en el momento de la asignación.
  • Clases de Objetos — Muestra tamaños de memoria y conteos por clases del motor que tus scripts utilizan y almacenan sus instancias, como EnumItem, Animation, CFrame. Críticamente, esta vista no muestra el uso de memoria dentro del motor mismo, solo la VM de Luau.
  • Referencias Únicas y Instancias Sin Padre — Muestra conteos y números totales de instancias para referencias únicas o todas las referencias restantes que no tienen un padre en el modelo de datos y solo son accesibles por scripts. También muestra todos los caminos que fijan el objeto de instancia.

Gráfico

La vista de Gráfico es la vista más detallada y compleja entre todas las vistas de heap de Luau. Muestra un árbol de uso de memoria agregado con cada nodo representando un objeto con memoria asignada. El árbol muestra cómo los objetos se conectan entre sí y deriva el camino más corto entre referencias de objetos. Tiene las siguientes columnas de tamaño de memoria:

  • Tamaño — El uso de memoria en sí más el uso de memoria por contenidos dentro de la estructura de datos.
  • En sí — La memoria directamente asignada para la estructura de datos, excluyendo el uso de memoria por cualquier contenido que contenga.
Un ejemplo de vista de Gráfico

La raíz del gráfico de árbol es registry, que almacena todas las referencias del motor y Luau, como funciones conectadas a señales o la biblioteca de tareas, tablas devueltas por scripts de módulos, y funciones, tablas y clases globales. A menudo, es padre de las siguientes entradas comunes:

  • Module @Path.To.Module es la tabla devuelta por un script de módulo.
  • name:123 =Path.To.Module es una función dentro de un script especificado. Las funciones anónimas no tienen nombres. El nodo de nivel superior a menudo se refiere a la función de script global. Ejemplo: :1= Workspace.[Username].Animate.
  • upvalue es una referencia para funciones capturadas. Consulta Capturar el alcance local para más información.
  • env se refiere al entorno de una función. En la mayoría de los casos, es una tabla que representa el ámbito global de un script.
  • globals se refiere al entorno de un hilo.
  • [key] representa objetos que sirven como claves de tabla.
  • array representa un arreglo.
  • stack se refiere al arreglo que almacena todos los locales de función.
  • constants representa todos los valores constantes que las funciones utilizan.

Categorías de memoria

La vista de Categorías de Memoria muestra tamaños de memoria y conteos por categorías de memoria, que el motor asigna a los objetos en el momento de la asignación. Por defecto, la categoría de memoria tiene el mismo nombre que el script, o puedes asignar nombres de categorías de memoria personalizados utilizando la función debug.setmemorycategory.

Referencias únicas y instancias sin padre

Las vistas de Referencias Únicas y Instancias Sin Padre están relacionadas. Ambas muestran el uso de memoria de instancias que no tienen un padre en el modelo de datos y solo son accesibles por scripts, junto con todos los caminos que fijan el objeto de instancia. Si una instancia está solo referenciada dentro de scripts de Luau, aparece bajo Referencias Únicas. De lo contrario, también está en uso por sistemas de Roblox y aparece bajo Instancias Sin Padre. Ambas vistas muestran dos métricas:

  • Conteo — El número de instancias con el mismo nombre que son accesibles desde el mismo camino, como múltiples instancias llamadas Dragon en la misma tabla.
  • Total de Instancias — El número total de objetos dentro de esas raíces, como todas las partes, scripts y objetos de sonido que construyen una instancia de Dragon.
Un ejemplo de vista de Referencia Única

Estas vistas son útiles para identificar instancias conectadas innecesarias, que necesitas desconectar cuando ya no las necesites. Si ves muchas instancias inesperadas en esta vista, revisa los caminos que las sostienen y evalúa si son necesarias.

©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.