Todo componente de construção e script que você adiciona à sua experiência consome memória. Quando o uso de memória atinge os limites do mecanismo, o dispositivo ou servidor do usuário pode travar, então você precisa monitorar ativamente o uso.
O Console do Desenvolvedor fornece duas ferramentas para monitorar o uso de memória:
Memória — Visualize o consumo de memória em tempo real por categorias de uso, incluindo seus componentes personalizados e os processos internos do motor.
Heap do Luau — Crie instantâneas da memória heap, que se refere à alocação de memória dos seus scripts. Esta ferramenta fornece várias visualizações para ajudá-lo a identificar a alocação de memória atual e problemas de diferentes perspectivas, como tipos de objetos e classes do motor. Ela também permite criar várias instantâneas para comparar diferenças no uso de memória ao longo do tempo.
Você pode abrir o console durante uma sessão de jogo de teste ou ao vivo usando qualquer uma das seguintes formas:
- Pressione F9.
- Digite /console no chat.
- Use o menu do jogo:
Abra o Menu Roblox no jogo.

Selecione a aba Configurações.
Role para baixo 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. Ela 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 visualizar a alocação de memória:
Abra o Console do Desenvolvedor.
Expanda o menu suspenso de ferramentas para selecionar Memória.

Expanda o menu suspenso cliente-servidor para selecionar Cliente ou Servidor.
Navegue pelas categorias e itens de uso de memória. Se você quiser ver o uso ao longo do tempo, expanda a categoria para exibir um gráfico.
CoreMemory — Uso de memória pelos processos de construção principais do motor, incluindo rede, avatares e elementos GUI que você não tem controle direto.
PlaceMemory — Uso de memória com base em como você constrói sua experiência, incluindo modelos, terreno, partes, scripts e todos os outros elementos personalizados que você adiciona à sua experiência.
Referência do PlaceMemoryCategoria Descrição HttpCache Ativos (imagens, malhas, etc.) carregados dos servidores Roblox e agora mantidos em um cache na memória. Instances Instances no local. Signals Sinais que disparam entre instâncias (um evento disparando em uma instância para acionar um evento em outra instância). LuaHeap Memória heap para scripts principais (scripts que vêm com o cliente Roblox) e scripts personalizados. Script Scripts Luau. PhysicsCollision Dados de colisão para simulações de física. PhysicsParts Geometria e cinética da física. GraphicsSolidModels Dados gráficos para renderizar modelos sólidos. GraphicsMeshParts Gráficos para objetos MeshPart. GraphicsParticles Gráficos para sistemas de partículas. GraphicsParts Gráficos para partes. GraphicsSpatialHash Renderização geral. GraphicsTerrain Gráficos para terreno. GraphicsTexture Memória de textura. GraphicsTextureCharacter Memória de textura para personagens. Sounds sons em memória. StreamingSounds sons de streaming. TerrainVoxels Voxéis de terreno. TerrainPhysics Física do terreno. Gui Memória utilizada por elementos GUI comuns. Animation Memória usada para dados de animação, como poses e dados em cache de KeyframeSequence para animações de avatar. Navigation Memória usada por estruturas de suporte para PathfindingService. UntrackedMemory — Alocações de memória que o sistema não consegue facilmente atribuir a uma fonte específica.
PlaceScriptMemory — Uso de memória dos seus scripts com insights sobre como scripts individuais e tags de memória personalizadas contribuem para o uso total de memória.
CoreScriptMemory — Uso de memória por scripts internos do motor que você não tem controle direto.
Entre essas categorias, PlaceMemory e PlaceScriptMemory são as mais importantes para a otimização de desempenho, pois ajudam você a entender como suas escolhas de construção e script afetam o consumo de memória e possíveis áreas para otimização. Para mais informações sobre PlaceScriptMemory, utilize a ferramenta Heap do Luau para criar instantâneas e analisar a alocação de memória por diferentes métricas.
Heap do Luau
A ferramenta Heap do Luau permite que você crie instantâneas da alocação atual de memória heap, que se refere à memória que os scripts Luau usam para armazenar variáveis, tabelas, funções e outras estruturas de dados em tempo de execução. Esta ferramenta fornece várias visualizações para ajudá-lo a identificar problemas de diferentes perspectivas, como tipos de objetos e classes do motor. Ela também permite criar várias instantâneas para comparar diferenças no uso de memória ao longo do tempo.
Criar instantâneas
Para criar uma instantânea da sua alocação de memória:
Abra o Console do Desenvolvedor.
Expanda o menu suspenso de ferramentas para selecionar LuauHeap.

Expanda o menu suspenso cliente-servidor para selecionar Cliente ou Servidor.
Clique no botão Criar Instantânea.
Analisar uso de memória
A ferramenta fornece muitas visualizações sobre o uso de memória do Luau:
- Gráfico — Mostra uma árvore de uso de memória agregada, com cada nó representando um objeto com memória alocada.
- Tags de Objeto — Mostra tamanhos de memória e contagens por tipos de tempo de execução, como função, tabela e thread.
- Categorias de Memória — Mostra tamanhos de memória e contagens por categorias de memória atribuídas pelo motor. O motor atribui uma categoria de memória a um objeto no momento da alocação.
- Classes de Objeto — Mostra tamanhos de memória e contagens por classes do motor que seus scripts usam e armazenam suas instâncias, como EnumItem, Animação, CFrame. Criticamente, esta visualização não mostra o uso de memória dentro do motor em si, apenas a VM do Luau.
- Referências Únicas e Instâncias Não-parentadas — Mostra contagens e números totais de instâncias para referências únicas ou todas as referências restantes que não têm um pai no modelo de dados e são acessíveis apenas por scripts. Também mostra todos os caminhos que fixam o objeto da instância.
Gráfico
A visualização Gráfico é a mais detalhada e complexa entre todas as visualizações do heap do Luau. Ela 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 entre si e deriva o caminho mais curto entre as referências de objetos. Ela possui as seguintes colunas de tamanho de memória:
- Tamanho — O uso de memória próprio mais o uso de memória pelo conteúdo dentro da estrutura de dados.
- Próprio — A memória diretamente alocada para a própria estrutura de dados, excluindo o uso de memória por qualquer conteúdo que ela contenha.

A raiz da árvore do gráfico é registry, que armazena todas as referências do motor e do 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, ela tem como pai 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 geralmente se refere à função de script global. Exemplo: :1= Workspace.[NomeDeUsuário].Animate.
- upvalue é uma referência para funções capturadas. Consulte Capturar escopo local para mais informações.
- env refere-se ao ambiente de uma função. Em muitos casos, é uma tabela representando o escopo global de um script.
- globals refere-se ao ambiente de uma thread.
- [key] representa objetos que servem como chaves de tabela.
- array representa um array.
- 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 visualização Categorias de Memória mostra tamanhos de memória e contagens por categorias de memória, que o motor atribui a objetos no momento da alocação. Por padrão, a categoria de memória tem o mesmo nome que o script, ou você pode atribuir nomes de categorias de memória personalizadas usando a função debug.setmemorycategory.
Referências únicas e instâncias não-parentadas
As visualizações Referências Únicas e Instâncias Não-parentadas estão relacionadas. Ambas mostram o uso de memória de instâncias que não têm um pai no modelo de dados e são acessíveis apenas por scripts, juntamente com todos os caminhos que fixam o objeto da instância. Se uma instância é referenciada apenas dentro de scripts Luau, ela aparece em Referências Únicas. Caso contrário, ela também está em uso pelos sistemas Roblox e aparece em Instâncias Não-parentadas. Ambas as visualizações mostram duas métricas:
- Contagem — O número de instâncias com o mesmo nome que são acessíveis a partir do mesmo caminho, como várias instâncias chamadas Dragão na mesma tabela.
- Total de Instâncias — O número total de objetos dentro dessas raízes, como todas as partes, scripts e objetos de som que constroem uma instância Dragão.

Essas visualizações são úteis para identificar instâncias conectadas desnecessárias, que você precisa desconectar quando não precisar mais delas. Se você vir muitas instâncias inesperadas nesta visualização, verifique os caminhos que as mantêm e avalie se elas são necessárias.