Cada componente de construção e script que você adiciona à sua experiência consome memória.Quando o uso de memória chega aos limites do motor, o dispositivo ou servidor do usuário pode travar, então você precisa monitorar ativamente o uso de memória e tomar medidas de otimização. Console de Desenvolvedor fornece duas ferramentas para monitorar o uso de memória, incluindo:
Memória — Veja o consumo de memória em tempo real por categorias de uso, incluindo o uso de memória por seus componentes personalizados e os processos internos do motor.
Pilha Luau — Crie instantâneos na memória do heap, que se refere à alocação de memória para seus scripts.Esta ferramenta fornece várias visualizações de alocação de memória para ajudá-lo a identificar a alocação de memória atual e problemas de diferentes perspectivas, como tipos de objeto e Classesmotor.Também permite que você crie vários instantâneos para comparar diferenças no uso de memória ao longo do tempo.
Você pode abrir o console durante uma sessão de teste ou experiência ao vivo usando qualquer uma das seguintes maneiras:
- Pressione F9.
- Digite /console no chat.
- Use o menu na experiência:
Abra o menu na experiência Roblox .
Selecione a aba Configurações .
Desça até Console do Desenvolvedor e clique em Abrir .
Memória
A ferramenta Memória categoriza e exibe o uso de memória em tempo real.Ele exibe o uso de memória em MB de cada categoria e gera um gráfico sobre a mudança de uso ao longo do tempo.
Para ver a alocação de memória:
Abra o Console de Desenvolvedor .
Expanda o menu de ferramentas para selecionar Memória .
Expand the client-server dropdown to selecionar Cliente ou Servidor .
Navegue nas categorias e itens de uso de memória.Para categorias ou itens que você deseja ver o padrão de uso após o tempo, expanda a categoria para exibir o gráfico.
Memória do Núcleo — Uso de memória pelos processos de construção do núcleo do motor, incluindo rede, avatares e elementos de GUI (Interface Gráfica do Usuário) dos quais você não tem controle direto.
Memória de Local — Uso de memória baseado em como você constrói sua experiência, incluindo modelos, terreno, peças, scripts e todos os outros elementos personalizados que você adiciona à sua experiência.
Referência de memória de lugarCategoria Descrição HttpCache Recursos (imagens, malhas, etc.) carregados de servidores do Roblox e agora mantidos em um cache na memória. Instâncias Instances no local. Sinais Sinais que atiram entre instâncias (um evento ativando em uma instância para disparar um evento em outra instância). Pilha Lua Memória de pilha para ambos os scripts principais (scripts que são enviados com o cliente Roblox) e scripts personalizados. Script Scripts Luau. Colisão de Física Dados de colisão para simulações de física. Peças de Física Geometria física e cinética. Modelos GráficosSólidos Dados gráficos para renderizar modelos sólidos. Peças de Malha Gráfica Gráficos para MeshPart. Particulas Gráficas Gráficos para sistemas de particulas. Peças Gráficas Gráficos para peças. Hash Espacial Gráfico Renderização geral. Terreno Gráfico Gráficos para terreno. Textura Gráfica Memória de textura. Personagem de Textura Gráfica Memória de textura para personagens. Sons Sons na memória. Sons de Streaming Reproduzindo sons. Voxelos de Terreno Voxelos de terreno. Física de Terreno Física do terreno. Guia Memória usada por elementos de GUI comuns. Animação Memória usada para dados de animação, como poses e KeyframeSequence dados armazenados em cache para animações de avatar. Navegação Memória usada por estruturas de suporte para PathfindingService . Memória não rastreada — Alocações de memória que o sistema não pode atribuir facilmente a uma originalespecífica.
Memória de Script de Localização — Uso de memória de seus scripts com insights sobre como scripts individuais e tags de memória personalizadas contribuem para o uso geral de memória.
Memória de Script de Núcleo — Uso de memória por scripts de motor interno que você não tem controle direto.
Entre essas categorias, PlaceMemory e PlaceScriptMemory são as mais importantes para otimização de desempenho, porque ajudam você a entender como suas escolhas de construção e script afetam o consumo de memória e as áreas potenciais de otimização.Para mais insights sobre Memória de Script de Lugar , você pode usar a ferramenta Luau heap para criar instantâneos e analisar a alocação de memória por diferentes métricas.
Pilha Luau
A ferramenta Pilha Luau permite que você crie instantâneos na alocação atual de memória de heap, que se refere à alocação de memória para scripts Luau para armazenar variáveis, tabelas, funções e outras estruturas de dados de tempo de execução.Esta ferramenta fornece várias visualizações de alocação de memória para ajudá-lo a identificar a alocação de memória e problemas de diferentes perspectivas, como tipos de objetos e Classesde motor.Também permite que você crie vários instantâneos para comparar diferenças no uso de memória ao longo do tempo.
Criar instantâneos
Para criar um instantâneo da alocação de memória:
Abra o Console de Desenvolvedor .
Expanda o menu de ferramentas para selecionar LuauHeap .
Expand the client-server dropdown to selecionar Cliente ou Servidor .
Clique no botão Criar Snapshot .
Analise o uso de memória
A ferramenta fornece cinco vistas que você pode selecionar para visualizar a alocação de memória Luau com base em diferentes vistas:
- Gráfico — Mostra uma árvore de uso de memória agregada com cada nó representando um objeto com memória alocada.
- Etiquetas de objeto — Mostra tamanhos de memória e contagens por tipos de tempo de execução, como function, table e thread.
- Categorias de memória — Mostra tamanhos e contagens de memória pelas categorias de memória atribuídas pelo motor.O motor atribui uma categoria de memória a um objeto no momento de alocação.
- Classes de objeto — Mostra tamanhos de memória e contagens por classes de motor que seus scripts usam e armazenam suas instâncias, como EnumItem , Animation , CFrame .
- Referências exclusivas — Mostra contagens e o número total de instâncias que não têm um pai no modelo de dados e só podem ser alcançadas por scripts, além de todos os caminhos que prendem o Objetode instância.
Gráfico
A visualização Gráfico é a mais detalhada e complexa entre todas as visualizações de pilha Luau.Mostra uma árvore de uso de memória agregada com cada nó representando um objeto com memória alocada.A árvore mostra como os objetos se conectam uns aos outros e deriva o caminho mais curto entre as referências de objetos.Ela tem as seguintes colunas de tamanho de memória: Tamanho — O uso de memória própria mais o uso de memória por conteúdo dentro da estrutura de dados.Self — A memória diretamente alocada para a própria estrutura de dados, excluindo o uso de memória por qualquer conteúdo que ela contém.

A raiz do gráfico de árvore é registry, que armazena todas as referências de motor e Luau, como funções conectadas a sinais ou a biblioteca de tarefas, tabelas retornadas por scripts de módulo e funções globais, tabelas e Classes.Geralmente pais as seguintes entradas comuns:
- Module @Path.To.Module é a tabela retornada por um script de módulo.
- name:123 =Path.To.Module é uma função dentro de um script especificado.Funções anônimas não têm nomes.O nó de nível superior muitas vezes se refere à função de script global.Funções anônimas não têm nomes.Exemplo: :1= Workspace.[Username].Animate .
- upvalue é uma referência para funções capturadas. Veja Capture alcance local para mais informações.
- env refere-se ao ambiente de uma função. Para a maioria dos casos, é uma tabela que representa o escopo global de um script.
- globals refere-se ao ambiente de um subprocesso.
- [key] representa objetos que servem como chaves de tabela.
- array representa um matriz / lista.
- stack refere-se ao array que armazena todos os locais de função.
- constants representa todos os valores constantes que as funções usam.
Categorias de memória
A visão Categorias de Memória mostra tamanhos de memória e contagens por categorias de memória, que o motor atribui a objetos na hora de alocação.Por padrão, a categoria de memória tem o mesmo nome do script, ou você pode atribuir nomes de categoria de memória personalizados usando a função debug.setmemorycategory.
Referências exclusivas
A visão Referências Únicas mostra o uso de memória de instâncias que não têm um pai no modelo de dados e só podem ser acessadas por scripts, juntamente com todos os caminhos que prendem o Objetode instância.Esta visão tem duas métricas:
- Contar — Mostra o número de instâncias com o mesmo nome que podem ser alcançadas pelo mesmo caminho, como várias instâncias chamadas Dragon na mesma tabela.
- Instâncias totais — Mostra o número total de objetos dentro dessas raízes, como todas as partes, scripts e objetos de som que constroem uma instância Dragon.

Esta visão é útil para identificar instâncias conectadas desnecessárias, que você precisa desconectar quando não precisar mais delas.Se você ver muitas instâncias inesperadas nesta visualização, verifique os caminhos que as contêm e avalie se elas são necessárias.