Einzelnen Beitrag anzeigen

alzaimar
(Moderator)

Registriert seit: 6. Mai 2005
Ort: Berlin
4.956 Beiträge
 
Delphi 2007 Enterprise
 
#2

Re: Freigabe eines Objektes wenn keine Referenz mehr drauf z

  Alt 30. Sep 2005, 15:08
COM-Objekte machen sowas. Die haben Referenzzähler. Der Overhead ist zwar "relativ" gering, aber doch spürbar, insbesondere bei zeitkritischen Anwendungen.
Delphi-Quellcode:
Var
  x,y : IMyComInterface;

Begin
  x := GetObject; // object wird alloziiert. RefCount = 1
  x := Nil; // Referenz wird überschrieben, RefCount = 0==> Free
  
  x := GetObject; // object wird alloziiert. RefCount = 1
  y := x; // Refcount = 2
  x := Nil; // Referenz wird überschrieben, RefCount = 1
End; // Ende des Gültigkeitsbereichs von x und y. Delphi generiert den entsprechenden Code, um Speicherlecks zu vermeiden
"Wenn ist das Nunstruck git und Slotermeyer? Ja! Beiherhund das Oder die Flipperwaldt gersput!"
(Monty Python "Joke Warefare")
  Mit Zitat antworten Zitat