Garbage Collection

Aus UnrealWiki
Version vom 4. August 2025, 17:01 Uhr von Jan1009 (Diskussion | Beiträge) (Seite angelegt)
(Unterschied) ← Nächstältere Version | Aktuelle Version (Unterschied) | Nächstjüngere Version → (Unterschied)

Die Garbage Collection in Unreal Engine 5 (UE5) ist ein automatisches Speichermanagementsystem, das nicht mehr benötigte Objekte (UObjects) aus dem Speicher entfernt, um Speicherlecks zu vermeiden und die Leistung zu verbessern. Im Gegensatz zu C++, wo Entwickler manuell Speicher freigeben müssen, übernimmt die Garbage Collection diese Aufgabe automatisch.

Wie funktioniert die Garbage Collection in UE5?

  1. 1. Erstellung von UObjects: Wenn ein Objekt, das von UObject abgeleitet ist, erstellt wird, wird es im Garbage-Collection-System von Unreal Engine registriert.
  2. 2. Referenzanalyse: Das System erstellt einen Referenzgraphen, um zu ermitteln, welche Objekte aktiv verwendet werden und welche nicht mehr benötigt werden.
  3. 3. Mark-and-Sweep: Die Garbage Collection arbeitet nach dem Mark-and-Sweep-Prinzip. Im Mark-Schritt werden alle erreichbaren Objekte (Objekte, die noch referenziert werden) markiert. Im Sweep-Schritt werden alle nicht markierten Objekte, also die nicht mehr benötigten Objekte, freigegeben und ihr Speicher wird dem System zurückgegeben.
  4. 4. Automatische Ausführung: Die Garbage Collection läuft in regelmäßigen Abständen automatisch im Hintergrund ab und analysiert den Speicherbedarf, ohne dass der Entwickler explizit eingreifen muss.
  5. 5. UProperty und UFunction: Um sicherzustellen, dass die Garbage Collection ordnungsgemäß funktioniert, müssen Objekte, die von UObject abgeleitet sind, mit den Makros UProperty und UFunction versehen werden, um Reflexionsdaten bereitzustellen.
  6. 6. Automatische Speicherfreigabe: Wenn eine Variable, die auf ein Objekt verweist, auf null gesetzt wird, erkennt das System, dass das Objekt nicht mehr verwendet wird und gibt den Speicher frei.

Vorteile der Garbage Collection in UE5:

  • Vermeidung von Speicherlecks: Die Garbage Collection verhindert, dass nicht mehr benötigter Speicher im Programm verbleibt und zu Speicherlecks führt.
  • Vereinfachung der Entwicklung: Entwickler müssen sich nicht mehr manuell um die Speicherverwaltung kümmern und können sich auf die Spielentwicklung konzentrieren.
  • Verbesserte Leistung: Durch die automatische Freigabe von nicht benötigtem Speicher kann die Leistung des Spiels verbessert werden.

Nachteile der Garbage Collection in UE5:

  • Leistungsverlust: Die Garbage Collection kann zu Leistungsengpässen führen, insbesondere wenn große Mengen an Speicher verwaltet werden müssen.
  • Unerwartetes Verhalten: In bestimmten Fällen kann die Garbage Collection Objekte unerwartet freigeben, was zu Fehlern im Spiel führen kann, wenn nicht korrekt mit der Garbage Collection umgegangen wird.