Registriert seit: 10. Jun 2002
Ort: Unterhaching
11.412 Beiträge
Delphi 12 Athens
|
Re: Der .NET Garbage Collector
2. Dez 2004, 14:30
Der Garbage Collector von .NET
Der GC von .NET arbeitet als Standard immer in einem Hintergrund-Thread. Setzt man auf den GC, so hat man keinen direkten Einfluß auf den Zeitpunkt, zu welchem ein Objekt freigegeben wird.
Nachdem die letzte Referenz eines Objektes gelöscht wurde, kann die GC sich um die Entsorgung kümmern. Nochmal zu beachten gilt: Es macht unter .NET keinen Unterschied, ob wir jetzt über Referenzen via Object-Variablen oder Interface-Variablen oder beiden sprechen. Die GC kümmert sich jedoch nicht umgehend um dieses Objekt, d.h. dass der Speicher vorläufig nicht freigegeben wird. Wann sie der GC um da löschen kümmert, das kann man in der Regel nicht beeinflussen und muss man auch nicht. Der GC wird automatisch unter verschiedenen Bedingungen ausgeführt. Die wichtigste hierbei ist: der Speicher wird knapp. Wenn .NET der Meinung ist, es ist soweit, dann wird der GC gestartet. Dieser überprüft dann alle Referenzen auf Objekte und markiert die, auf welche nicht mehr verwiesen wird zur Freigabe und gibt diese ggf. auch sofort frei. Es kann jedoch auch mehrere Läufe des GC in Anspruch nehmen, bis ein Objekt freigegeben wird. Auch dieses ist nicht Thema dieses Tutorial.
Daniel Lizbeth
|