Ogni componente di costruzione e scripting che aggiungi alla tua esperienza consuma memoria.Quando l'utilizzo della memoria raggiunge i limiti del motore, il dispositivo o il server dell'utente potrebbe crashare, quindi devi monitorare attivamente l'utilizzo della memoria e prendere azioni per l'ottimizzazione. Console di sviluppatore fornisce due strumenti per il monitoraggio dell'utilizzo della memoria, tra cui:
Memoria — Visualizza il consumo di memoria in tempo reale per categorie di utilizzo, incluso l'utilizzo della memoria da parte di entrambe le tue componenti personalizzate e dei processi interni del motore.
Luau heap — Crea snapshot sulla memoria heap, che si riferisce all'assegnazione della memoria ai tuoi script.Questo strumento fornisce diverse viste di assegnazione della memoria per aiutarti a identificare l'assegnazione della memoria attuale e i problemi da diverse prospettive, come i tipi di oggetti e le Classidel motore.Consente inoltre di creare più snapshot per confrontare le differenze nell'utilizzo della memoria nel tempo.
Puoi aprire la console durante una sessione di test o di esperienza dal vivo utilizzando uno dei seguenti modi:
- Premi F9.
- Digita /console nella chat.
- Usa il menu in-esperienza:
Apri il menu in-experience Roblox .
Seleziona la scheda Impostazioni .
Scorri verso il basso fino a Console del sviluppatore e clicca Apri .
Memoria
Lo strumento Memoria categorizza e mostra l'utilizzo della memoria in tempo reale.Mostra l'utilizzo della memoria in MB di ogni categoria e genera una tabella sul cambiamento dell'utilizzo nel tempo.
Per visualizzare l'allocazione della memoria:
Apri la Console dello sviluppatore .
Espandi il menu a discesa degli strumenti per selezionare Memoria .
Espandi il menu a discesa client-server per selezionare Client o Server .
Sfoglia le categorie e gli elementi di utilizzo della memoria.Per le categorie o gli elementi che vuoi vedere il modello di utilizzo over-time, espandi la categoria per visualizzare la tabella.
Memoria del core — Utilizzo della memoria dai processi di costruzione del core dell'engine, inclusa la rete, gli avatar e gli elementi dell'interfaccia grafica (Interfaccia grafica utente) su cui non hai controllo diretto.
Memoria di posizione — Utilizzo della memoria in base a come costruisci la tua esperienza, inclusi modelli, terreno, parti, script e tutti gli altri elementi personalizzati che aggiungi alla tua esperienza.
Referenza alla memoria di posizioneCategoria Descrizione HttpCache Risorse (immagini, mesh, ecc.) caricate dai server Roblox e ora conservate in una cache in memoria. Istanzie Instances nel posto. Segnali Segnali che scattano tra le istanze (un evento che si attiva su un'istanza per attivare un evento su un'altra esempio). LuaHeap Memoria heap per entrambi gli script del core (script che vengono spediti con il client Roblox) e gli script personalizzati. Scrittura Script di Luau. Collisione fisica Dati di collisione per le simulazioni di fisica. Parti di fisica Geometria fisica e cinetica. Modelli solidi grafici Dati grafici per rendere modelli solidi. Parti della mesh Grafica Grafica per oggetti MeshPart grafici. Particelle grafiche Grafica per sistemi di particelle. Parti grafiche Grafica per parti. GraficaSpatialeHash Rendering generale. Terreno grafico Grafica per terreno. Texture grafica Memoria della texture. Personaggio GraficaTexture Memoria di texture per i personaggi. Suoni Suoni in memoria. Suoni di streaming Suoni di streaming. Voxels del terreno Voxel del terreno. Fisica del terreno Fisica del terreno. Guì Memoria utilizzata da elementi GUI comuni. Animazione Memoria utilizzata per i dati di animazione, come le pose e KeyframeSequence i dati memorizzati in cache per le animazioni dell'avatar. Navigazione Memoria utilizzata da strutture di supporto per PathfindingService . Memoria non tracciata — Assegnazioni di memoria che il sistema non può attribuire facilmente a una Sorgenteparticolare.
PlaceScriptMemory — Utilizzo della memoria dei tuoi script con insight su come gli script individuali e le etichette di memoria personalizzate contribuiscono all'utilizzo complessivo della memoria.
Memoria CoreScriptMemory — Utilizzo della memoria da parte degli script del motore interno su cui non hai controllo diretto.
Tra queste categorie, PlaceMemory e PlaceScriptMemory sono le più importanti per l'ottimizzazione delle prestazioni, perché ti aiutano a capire come le tue scelte di costruzione e scripting influenzino il consumo di memoria e le aree potenziali per l'ottimizzazione.Per maggiori approfondimenti su Luau heap , puoi usare lo strumento Luau heap per creare snapshot e analizzare l'allocazione della memoria con diverse metriche.
Pila di Luau
Lo strumento heap Luau ti consente di creare snapshot sull'allocazione attuale della memoria heap, che si riferisce all'assegnazione della memoria ai script Luau per lo storage delle variabili, delle tabelle, delle funzioni e di altre strutture di dati di runtime.Questo strumento fornisce diverse viste di assegnazione della memoria per aiutarti a identificare l'assegnazione della memoria e i problemi da diverse prospettive, come i tipi di oggetti e le Classidel motore.Consente inoltre di creare più snapshot per confrontare le differenze nell'utilizzo della memoria nel tempo.
Crea snapshot
Per creare uno snapshot dell'allocazione della memoria:
Apri la Console dello 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 snapshot .
Analizza l'utilizzo della memoria
Lo strumento fornisce cinque viste da cui puoi selezionare per visualizzare la tua assegnazione di memoria Luau in base a diverse viste:
- Grafico — Mostra un albero di utilizzo della memoria aggregata con ogni nodo che rappresenta un oggetto con memoria assegnata.
- Etichette oggetto — Mostra le dimensioni della memoria e il conteggio dei tipi di runtime, come function , table e thread .
- Categorie di memoria — Mostra le dimensioni e il conteggio delle categorie di memoria assegnate dall'ingegno.Il motore assegna una categoria di memoria a un oggetto al momento dell'assegnazione.
- Classi oggetto — Mostra le dimensioni della memoria e il conteggio delle classi del motore che i tuoi script utilizzano e memorizzano le loro istanze, come EnumItem , Animation , CFrame .
- Referenze uniche — Mostra i conti e il numero totale di istanze che non hanno un padre nel modello di dati e sono raggiungibili solo da script, insieme a tutti i percorsi che fissano l'oggetto dell'istanza.
Grafico
La vista Grafica è la vista più dettagliata e complessa tra tutte le viste dell'heap Luau.Mostra un albero di utilizzo della memoria aggregata con ogni nodo che rappresenta un oggetto con memoria assegnata.L'albero mostra come gli oggetti si connettono tra loro e deriva il percorso più breve tra le referenze degli oggetti.Ha le seguenti colonne della dimensione della memoria: Dimensione — L'uso della memoria del sé più l'uso della memoria dei contenuti all'interno della struttura dei dati.Self — La memoria assegnata direttamente alla struttura dei dati stessa, escludendo l'utilizzo della memoria da parte di qualsiasi contenuto che contiene.

La radice del grafico albero è registry, che memorizza tutte le referenze di motore e Luau, come le funzioni connesse ai segnali o alla libreria delle attività, le tabelle restituite dagli script dei moduli e le funzioni globali, le tabelle e le Classi.Di solito genitori le seguenti entrate comuni:
- Module @Path.To.Module è la tabella restituita da uno script del modulo.
- name:123 =Path.To.Module è una funzione all'interno di uno script specificato.Le funzioni anonime non hanno nomi.Il nodo di alto livello si riferisce spesso alla funzione globale dello script.Le funzioni anonime non hanno nomi.Esempio: :1= Workspace.[Username].Animate .
- upvalue è un riferimento per le funzioni catturate. Vedi Cattura della scala locale per ulteriori informazioni.
- env si riferisce all'ambiente di una funzione. Per la maggior parte dei casi, è una tabella che rappresenta la portata globale di uno script.
- globals si riferisce all'ambiente di un filo.
- [key] rappresenta oggetti che servono come chiavi di tabella.
- array rappresenta un vettore.
- stack si riferisce all'array che memorizza tutti i locali di funzione.
- constants rappresenta tutti i valori costanti che le funzioni utilizzano.
Categorie di memoria
La vista Categorie di memoria mostra le dimensioni della memoria e il conteggio delle categorie di memoria, che il motore assegna agli oggetti al momento dell'assegnazione.Per impostazione predefinita, la categoria di memoria ha lo stesso nome dello script, o puoi assegnare nomi di categoria di memoria personalizzati utilizzando la funzione debug.setmemorycategory.
Referenze uniche
La vista Referenze uniche mostra l'utilizzo della memoria delle istanze che non hanno un padre nel modello di dati e sono raggiungibili solo dagli script, insieme a tutti i percorsi che fissano l'oggetto dell'istanza.Questa vista ha due metriche:
- Conteggio — Mostra il numero di istanze con lo stesso nome che sono raggiungibili dallo stesso percorso, come più istanze denominate Dragon nella stessa tabella.
- Istanze totali — Mostra il numero totale di oggetti all'interno di quelle radici, come tutte le parti, gli script e gli oggetti sonori che costruiscono un'esempioDragon.

Questa vista è utile per identificare istanze connesse non necessarie, che devi disconnettere quando non ne hai più bisogno.Se vedi molte istanze inaspettate in questa vista, controlla i percorsi che le contengono e valuta se sono necessari.