Looking for .net Keywords? Try Ask4Keywords

.NET FrameworkMüllsammlung


Einführung

In .Net werden Objekte, die mit new () erstellt wurden, auf dem verwalteten Heapspeicher zugewiesen. Diese Objekte werden von dem Programm, das sie verwendet, niemals explizit abgeschlossen. Stattdessen wird dieser Prozess vom .Net Garbage Collector gesteuert.

Einige der folgenden Beispiele sind "Laborfälle", um den Garbage Collector bei der Arbeit und einige wichtige Details seines Verhaltens zu zeigen, während andere sich darauf konzentrieren, wie Klassen für die korrekte Handhabung durch den Garbage Collector vorbereitet werden.

Bemerkungen

Der Garbage Collector zielt darauf ab, die Programmkosten in Bezug auf den zugewiesenen Speicher zu senken, dies hat jedoch Kosten in Bezug auf die Verarbeitungszeit. Um einen guten Gesamtkompromiss zu erreichen, gibt es eine Reihe von Optimierungen, die bei der Programmierung mit dem Garbage Collector berücksichtigt werden sollten:

  • Wenn die Collect () - Methode explizit aufgerufen werden soll (was ohnehin selten der Fall sein sollte), sollten Sie den "optimierten" Modus in Betracht ziehen, der das Dead-Objekt nur dann finalisiert, wenn tatsächlich Speicher benötigt wird
  • Anstatt die Collect () - Methode aufzurufen, sollten Sie die AddMemoryPressure () - und RemoveMemoryPressure () - Methode verwenden, die nur dann eine Speichersammlung auslöst, wenn sie tatsächlich benötigt wird
  • Es kann nicht garantiert werden, dass eine Speichersammlung alle toten Objekte abschließt. Stattdessen verwaltet der Garbage Collector 3 "Generationen", ein Objekt, das manchmal von einer Generation in die nächste "überlebt"
  • Abhängig von verschiedenen Faktoren, einschließlich der Feinabstimmung der Einrichtung, können mehrere Threading-Modelle angewendet werden, die zu unterschiedlichen Interferenzen zwischen dem Garbage Collector-Thread und den anderen Anwendungsthread (en) führen.

Müllsammlung Verwandte Beispiele