Jede Bau- und Skriptingkomponente, die Sie zu Ihrem Spiel hinzufügen, verbraucht Speicher. Wenn der Speicherverbrauch die Grenzwerte der Engine erreicht, kann das Gerät oder der Server des Benutzers abstürzen, daher müssen Sie den Verbrauch aktiv überwachen.
Die Entwicklerkonsole bietet zwei Werkzeuge zur Überwachung des Speicherverbrauchs:
Speicher — Anzeigen des aktuellen Speicherverbrauchs nach Nutzungskategorien, einschließlich Ihrer benutzerdefinierten Komponenten und der internen Prozesse der Engine.
Luau Heap — Erstellen von Snapshots des Heap-Speichers, der sich auf die Speicherzuweisung Ihrer Skripte bezieht. Dieses Werkzeug bietet mehrere Ansichten, um Ihnen zu helfen, die aktuelle Speicherzuweisung und Probleme aus verschiedenen Perspektiven zu identifizieren, wie z. B. Objekttypen und Engine-Klassen. Es ermöglicht Ihnen auch, mehrere Snapshots zu erstellen, um Unterschiede im Speicherverbrauch über die Zeit zu vergleichen.
You can open the console during a testing or live game session using any of the following ways:
- Press F9.
- Type /console into the chat.
- Use the in-game menu:
Open the in-game Roblox Menu.

Select the Settings tab.
Scroll down to Developer Console and click Open.
Speicher
Das Speicher-Werkzeug kategorisiert und zeigt den aktuellen Speicherverbrauch in Echtzeit an. Es zeigt den Speicherverbrauch in MB für jede Kategorie an und generiert ein Diagramm über die Veränderung des Verbrauchs im Laufe der Zeit.
Um die Speicherzuweisung anzuzeigen:
Öffnen Sie die Entwicklerkonsole.
Erweitern Sie das Dropdown-Menü der Werkzeuge, um Speicher auszuwählen.

Erweitern Sie das Dropdown-Menü für Client-Server, um Client oder Server auszuwählen.
Durchsuchen Sie die Kategorien und Elemente des Speicherverbrauchs. Wenn Sie den Verbrauch über die Zeit sehen möchten, erweitern Sie die Kategorie, um ein Diagramm anzuzeigen.
CoreMemory — Speicherverbrauch durch die grundlegenden Bauprozesse der Engine, einschließlich Netzwerk, Avatare und GUI-Elemente, über die Sie keine direkte Kontrolle haben.
PlaceMemory — Speicherverbrauch basierend darauf, wie Sie Ihr Spiel bauen, einschließlich Modelle, Terrain, Teile, Skripte und alle anderen benutzerdefinierten Elemente, die Sie zu Ihrem Spiel hinzufügen.
PlaceMemory-ReferenzKategorie Beschreibung HttpCache Assets (Bilder, Meshes usw.), die von Roblox-Servern geladen und jetzt im Speicher zwischengespeichert sind. Instances Instances im Ort. Signals Signale, die zwischen Instanzen ausgelöst werden (ein Ereignis, das auf einer Instanz ausgelöst wird, um ein Ereignis auf einer anderen Instanz auszulösen). LuaHeap Heap-Speicher für sowohl Kernskripte (Skripte, die mit dem Roblox-Client ausgeliefert werden) als auch benutzerdefinierte Skripte. Script Luau-Skripte. PhysicsCollision Kollisionsdaten für Physiksimulationen. PhysicsParts Physikgeometrie und Kinetik. GraphicsSolidModels Grafikdaten zum Rendern solider Modelle. GraphicsMeshParts Grafik für MeshPart-Objekte. GraphicsParticles Grafik für Partikelsysteme. GraphicsParts Grafik für Teile. GraphicsSpatialHash Allgemeines Rendering. GraphicsTerrain Grafik für Terrain. GraphicsTexture Texturspeicher. GraphicsTextureCharacter Texturspeicher für Charaktere. Sounds Im-Speicher-Sounds. StreamingSounds Streaming-Sounds. TerrainVoxels Terrain-Voxels. TerrainPhysics Terrain-Physik. Gui Speicher, der von gängigen GUI-Elementen verwendet wird. Animation Speicher, der für Animationsdaten verwendet wird, wie Posen und KeyframeSequence-Zwischenspeicher für Avatar-Animationen. Navigation Speicher, der von unterstützenden Strukturen für PathfindingService verwendet wird. UntrackedMemory — Speicherzuweisungen, die das System nicht leicht einer bestimmten Quelle zuordnen kann.
PlaceScriptMemory — Speicherverbrauch Ihrer Skripte mit Einblicken, wie einzelne Skripte und benutzerdefinierte Speichertags zum gesamten Speicherverbrauch beitragen.
CoreScriptMemory — Speicherverbrauch durch interne Engineskripte, über die Sie keine direkte Kontrolle haben.
Unter diesen Kategorien sind PlaceMemory und PlaceScriptMemory die wichtigsten für die Leistungsoptimierung, da sie Ihnen helfen, zu verstehen, wie Ihre Bau- und Skriptingentscheidungen den Speicherverbrauch und potenzielle Optimierungsbereiche beeinflussen. Für weitere Einblicke in PlaceScriptMemory verwenden Sie das Luau Heap-Werkzeug, um Snapshots zu erstellen und die Speicherzuweisung nach verschiedenen Metriken zu analysieren.
Luau Heap
Das Luau Heap-Werkzeug ermöglicht es Ihnen, Snapshots der aktuellen Zuweisung von Heap-Speicher zu erstellen, der sich auf den Speicher bezieht, den Luau-Skripte verwenden, um Variablen, Tabellen, Funktionen und andere Laufzeitdatenstrukturen zu speichern. Dieses Werkzeug bietet mehrere Ansichten, um Ihnen zu helfen, Probleme aus verschiedenen Perspektiven zu identifizieren, wie z. B. Objekttypen und Engine-Klassen. Es ermöglicht Ihnen auch, mehrere Snapshots zu erstellen, um Unterschiede im Speicherverbrauch über die Zeit zu vergleichen.
Snapshots erstellen
Um einen Snapshot Ihrer Speicherzuweisung zu erstellen:
Öffnen Sie die Entwicklerkonsole.
Erweitern Sie das Dropdown-Menü der Werkzeuge, um LuauHeap auszuwählen.

Erweitern Sie das Dropdown-Menü für Client-Server, um Client oder Server auszuwählen.
Klicken Sie auf die Schaltfläche Snapshot erstellen.
Speicherverbrauch analysieren
Das Werkzeug bietet viele Ansichten zum Luau-Speicherverbrauch:
- Graph — Zeigt einen aggregierten Baum des Speicherverbrauchs, wobei jeder Knoten ein Objekt mit zugewiesenem Speicher darstellt.
- Objekt-Tags — Zeigt Speichergrößen und -anzahlen nach Laufzeittypen, wie function, table und thread.
- Speicherkategorien — Zeigt Speichergrößen und -anzahlen nach von der Engine zugewiesenen Speicherkategorien. Die Engine weist einem Objekt zum Zeitpunkt der Zuweisung eine Speicherkategorie zu.
- Objektklassen — Zeigt Speichergrößen und -anzahlen nach Engine-Klassen, die Ihre Skripte verwenden und deren Instanzen speichern, wie EnumItem, Animation, CFrame. Kritisch ist, dass diese Ansicht den Speicherverbrauch innerhalb der Engine selbst nicht anzeigt, sondern nur die Luau-VM.
- Eindeutige Referenzen und Unparented Instances — Zeigt Zählungen und Gesamtzahlen von Instanzen für eindeutige Referenzen oder alle verbleibenden Referenzen, die im Datenmodell keinen Elternteil haben und nur von Skripten erreicht werden können. Zeigt auch alle Pfade, die das Instanzobjekt festhalten.
Graph
Die Graph-Ansicht ist die detaillierteste und komplexeste Ansicht unter allen Luau-Heap-Ansichten. Sie zeigt einen aggregierten Baum des Speicherverbrauchs, wobei jeder Knoten ein Objekt mit zugewiesenem Speicher darstellt. Der Baum zeigt, wie Objekte miteinander verbunden sind und leitet den kürzesten Pfad zwischen Objektverweisen ab. Er hat die folgenden Spalten der Speichergröße:
- Größe — Der eigene Speicherverbrauch plus der Speicherverbrauch durch Inhalte innerhalb der Datenstruktur.
- Selbst — Der Speicher, der direkt für die Datenstruktur selbst zugewiesen ist, ohne den Speicherverbrauch durch Inhalte, die sie enthält.

Die Wurzel des Baumgraphen ist registry, die alle Engine- und Luau-Referenzen speichert, wie Funktionen, die mit Signalen oder der Aufgabenbibliothek verbunden sind, Tabellen, die von Modulscripten zurückgegeben werden, und globale Funktionen, Tabellen und Klassen. Sie hat normalerweise die folgenden gemeinsamen Einträge als Eltern:
- Module @Path.To.Module ist die Tabelle, die von einem Modulskript zurückgegeben wird.
- name:123 =Path.To.Module ist eine Funktion innerhalb eines bestimmten Skripts. Anonyme Funktionen haben keine Namen. Der oberste Knoten verweist oft auf die globale Skriptfunktion. Beispiel: :1= Workspace.[Benutzername].Animate.
- upvalue ist eine Referenz für erfasste Funktionen. Siehe Capture local scope für weitere Informationen.
- env bezieht sich auf die Umgebung einer Funktion. In den meisten Fällen ist es eine Tabelle, die den globalen Geltungsbereich eines Skripts darstellt.
- globals bezieht sich auf die Umgebung eines Threads.
- [key] stellt Objekte dar, die als Tabellenschlüssel dienen.
- array stellt ein Array dar.
- stack bezieht sich auf das Array, das alle Funktionslokalen speichert.
- constants stellt alle konstanten Werte dar, die Funktionen verwenden.
Speicherkategorien
Die Speicherkategorien-Ansicht zeigt Speichergrößen und -anzahlen nach Speicherkategorien, die die Engine den Objekten zum Zeitpunkt der Zuweisung zuweist. Standardmäßig hat die Speicherkategorie denselben Namen wie das Skript, oder Sie können benutzerdefinierte Speicherkategorienamen mit der Funktion debug.setmemorycategory zuweisen.
Eindeutige Referenzen und unparented Instanzen
Die Ansichten Eindeutige Referenzen und Unparented Instances sind miteinander verbunden. Beide zeigen den Speicherverbrauch von Instanzen, die im Datenmodell keinen Elternteil haben und nur von Skripten erreicht werden können, zusammen mit allen Pfaden, die das Instanzobjekt festhalten. Wenn eine Instanz nur innerhalb von Luau-Skripten referenziert wird, erscheint sie unter Eindeutige Referenzen. Andernfalls wird sie auch von Roblox-Systemen verwendet und erscheint unter Unparented Instances. Beide Ansichten zeigen zwei Metriken:
- Anzahl — Die Anzahl der Instanzen mit demselben Namen, die von demselben Pfad erreichbar sind, wie mehrere Instanzen mit dem Namen Dragon in derselben Tabelle.
- Gesamtinstanzen — Die Gesamtzahl der Objekte innerhalb dieser Wurzeln, wie alle Teile, Skripte und Soundobjekte, die eine Dragon-Instanz konstruieren.

Diese Ansichten sind nützlich, um unnötige verbundene Instanzen zu identifizieren, die Sie trennen müssen, wenn Sie sie nicht mehr benötigen. Wenn Sie viele unerwartete Instanzen in dieser Ansicht sehen, überprüfen Sie die Pfade, die sie halten, und bewerten Sie, ob sie notwendig sind.