Ogni componente di costruzione e scripting che aggiungi al tuo gioco consuma memoria. Quando l'utilizzo della memoria raggiunge i limiti del motore, il dispositivo o il server dell'utente potrebbero bloccarsi, quindi è necessario monitorare attivamente l'utilizzo.
La Console Sviluppatore fornisce due strumenti per monitorare l'utilizzo della memoria:
Memoria — Visualizza il consumo di memoria in tempo reale per categorie di utilizzo, inclusi i tuoi componenti personalizzati e i processi interni del motore.
Heap Luau — Crea istantanee della memoria heap, che si riferisce all'allocazione di memoria dei tuoi script. Questo strumento fornisce diverse visualizzazioni per aiutarti a identificare l'attuale allocazione di memoria e i problemi da diverse prospettive, come tipi di oggetti e classi del motore. Ti consente anche di creare più istantanee per confrontare le differenze nell'utilizzo della memoria nel tempo.
Puoi aprire la console durante una sessione di gioco di testing o dal vivo utilizzando uno dei seguenti metodi:
- Premi F9.
- Digita /console nella chat.
- Usa il menu di gioco:
Apri il Menu Roblox in gioco.

Seleziona la scheda Impostazioni.
Scorri verso il basso fino a Console per Sviluppatori e clicca su Apri.
Memoria
Lo strumento Memoria categorizza e visualizza l'utilizzo della memoria in tempo reale. Mostra l'utilizzo della memoria in MB di ciascuna categoria e genera un grafico sul cambiamento dell'utilizzo nel tempo.
Per visualizzare l'allocazione della memoria:
Apri la Console Sviluppatore.
Espandi il menu a discesa degli strumenti per selezionare Memoria.

Espandi il menu a discesa client-server per selezionare Client o Server.
Esplora le categorie e gli elementi di utilizzo della memoria. Se desideri vedere l'utilizzo nel tempo, espandi la categoria per visualizzare un grafico.
CoreMemory — Utilizzo della memoria dai processi di costruzione core del motore, inclusi networking, avatar e elementi GUI su cui non hai controllo diretto.
PlaceMemory — Utilizzo della memoria basato su come costruisci il tuo gioco, inclusi modelli, terreno, parti, script e tutti gli altri elementi personalizzati che aggiungi al tuo gioco.
Riferimento PlaceMemoryCategoria Descrizione HttpCache Asset (immagini, mesh, ecc.) caricati dai server Roblox e ora memorizzati in una cache in memoria. Instances Instances nel luogo. Signals Segnali che si attivano tra le istanze (un evento che si attiva su un'istanza per attivare un evento su un'altra istanza). LuaHeap Memoria heap per script core (script che vengono forniti con il client Roblox) e script personalizzati. Script Script Luau. PhysicsCollision Dati di collisione per simulazioni fisiche. PhysicsParts Geometria e cinetica fisica. GraphicsSolidModels Dati grafici per il rendering di modelli solidi. GraphicsMeshParts Grafica per oggetti MeshPart. GraphicsParticles Grafica per sistemi di particelle. GraphicsParts Grafica per parti. GraphicsSpatialHash Rendering generale. GraphicsTerrain Grafica per il terreno. GraphicsTexture Memoria delle texture. GraphicsTextureCharacter Memoria delle texture per i personaggi. Sounds Suoni in memoria. StreamingSounds Suoni in streaming. TerrainVoxels Voxels del terreno. TerrainPhysics Fisica del terreno. Gui Memoria utilizzata da elementi GUI comuni. Animation Memoria utilizzata per i dati di animazione, come pose e dati memorizzati di KeyframeSequence per le animazioni degli avatar. Navigation Memoria utilizzata da strutture di supporto per PathfindingService. UntrackedMemory — Allocazioni di memoria che il sistema non può facilmente attribuire a una fonte particolare.
PlaceScriptMemory — Utilizzo della memoria dei tuoi script con approfondimenti su come singoli script e tag di memoria personalizzati contribuiscono all'utilizzo complessivo della memoria.
CoreScriptMemory — Utilizzo della memoria da parte di script interni del motore su cui non hai controllo diretto.
Tra queste categorie, PlaceMemory e PlaceScriptMemory sono le più importanti per l'ottimizzazione delle prestazioni, poiché ti aiutano a capire come le tue scelte di costruzione e scripting influenzano il consumo di memoria e le potenziali aree di ottimizzazione. Per ulteriori approfondimenti su PlaceScriptMemory, utilizza lo strumento Heap Luau per creare istantanee e analizzare l'allocazione della memoria in base a diverse metriche.
Heap Luau
Lo strumento Heap Luau ti consente di creare istantanee dell'attuale allocazione di memoria heap, che si riferisce alla memoria utilizzata dagli script Luau per memorizzare variabili, tabelle, funzioni e altre strutture dati di runtime. Questo strumento fornisce diverse visualizzazioni per aiutarti a identificare problemi da diverse prospettive, come tipi di oggetti e classi del motore. Ti consente anche di creare più istantanee per confrontare le differenze nell'utilizzo della memoria nel tempo.
Crea istantanee
Per creare un'istantanea della tua allocazione di memoria:
Apri la Console Sviluppatore.
Espandi il menu a discesa degli strumenti per selezionare LuauHeap.

Espandi il menu a discesa client-server per selezionare Client o Server.
Fai clic sul pulsante Crea Istantanea.
Analizza l'utilizzo della memoria
Lo strumento fornisce molte visualizzazioni sull'utilizzo della memoria Luau:
- Grafico — Mostra un albero di utilizzo della memoria aggregato, con ogni nodo che rappresenta un oggetto con memoria allocata.
- Tag degli oggetti — Mostra dimensioni e conteggi della memoria per tipi di runtime, come function, table e thread.
- Categorie di memoria — Mostra dimensioni e conteggi della memoria per categorie di memoria assegnate dal motore. Il motore assegna una categoria di memoria a un oggetto al momento dell'allocazione.
- Classi di oggetti — Mostra dimensioni e conteggi della memoria per classi del motore che i tuoi script utilizzano e memorizzano le loro istanze, come EnumItem, Animation, CFrame. Criticamente, questa visualizzazione non mostra l'utilizzo della memoria all'interno del motore stesso, solo la VM Luau.
- Riferimenti unici e Istanze non parentate — Mostra conteggi e numeri totali di istanze per riferimenti unici o tutti i riferimenti rimanenti che non hanno un genitore nel modello dati e sono raggiungibili solo tramite script. Mostra anche tutti i percorsi che bloccano l'oggetto istanza.
Grafico
La visualizzazione Grafico è la più dettagliata e complessa tra tutte le visualizzazioni dell'heap Luau. Mostra un albero di utilizzo della memoria aggregato con ogni nodo che rappresenta un oggetto con memoria allocata. L'albero mostra come gli oggetti si collegano tra loro e deriva il percorso più breve tra i riferimenti agli oggetti. Ha le seguenti colonne di dimensione della memoria:
- Dimensione — L'utilizzo della memoria self più l'utilizzo della memoria dai contenuti all'interno della struttura dati.
- Self — La memoria direttamente allocata per la struttura dati stessa, escludendo l'utilizzo della memoria da qualsiasi contenuto che contiene.

La radice dell'albero grafico è registry, che memorizza tutti i riferimenti del motore e di Luau, come funzioni collegate a segnali o alla libreria dei task, tabelle restituite da script di modulo e funzioni globali, tabelle e classi. Di solito, è genitore delle seguenti voci comuni:
- Module @Path.To.Module è la tabella restituita da uno script di modulo.
- name:123 =Path.To.Module è una funzione all'interno di uno script specificato. Le funzioni anonime non hanno nomi. Il nodo di livello superiore si riferisce spesso alla funzione script globale. Esempio: :1= Workspace.[Username].Animate.
- upvalue è un riferimento per funzioni catturate. Vedi Cattura ambito locale per ulteriori informazioni.
- env si riferisce all'ambiente di una funzione. Nella maggior parte dei casi, è una tabella che rappresenta l'ambito globale di uno script.
- globals si riferisce all'ambiente di un thread.
- [key] rappresenta oggetti che fungono da chiavi di tabella.
- array rappresenta un array.
- stack si riferisce all'array che memorizza tutte le variabili locali delle funzioni.
- constants rappresenta tutti i valori costanti utilizzati dalle funzioni.
Categorie di memoria
La visualizzazione Categorie di Memoria mostra dimensioni e conteggi della memoria per categorie di memoria, che il motore assegna agli oggetti al momento dell'allocazione. Per impostazione predefinita, la categoria di memoria ha lo stesso nome dello script, oppure puoi assegnare nomi di categorie di memoria personalizzati utilizzando la funzione debug.setmemorycategory.
Riferimenti unici e istanze non parentate
Le visualizzazioni Riferimenti Unici e Istanze Non Parentate sono correlate. Entrambe mostrano l'utilizzo della memoria delle istanze che non hanno un genitore nel modello dati e sono raggiungibili solo tramite script, insieme a tutti i percorsi che bloccano l'oggetto istanza. Se un'istanza è referenziata solo all'interno degli script Luau, appare sotto Riferimenti Unici. Altrimenti, è anche utilizzata dai sistemi Roblox e appare sotto Istanze Non Parentate. Entrambe le visualizzazioni mostrano due metriche:
- Conteggio — Il numero di istanze con lo stesso nome che sono raggiungibili dallo stesso percorso, come più istanze chiamate Dragon nella stessa tabella.
- Istanze Totali — Il numero totale di oggetti all'interno di quelle radici, come tutte le parti, script e oggetti sonori che costruiscono un'istanza Dragon.

Queste visualizzazioni sono utili per identificare istanze collegate non necessarie, che devi disconnettere quando non ne hai più bisogno. Se vedi molte istanze inaspettate in questa visualizzazione, controlla i percorsi che le contengono e valuta se sono necessarie.