Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi TDateTime freigeben? (https://www.delphipraxis.net/205720-tdatetime-freigeben.html)

Maliko 9. Okt 2020 09:29

TDateTime freigeben?
 
Moin,

mal ne ganz blöde Frage. Primitive Datentypen wie String, Integer, Double oder auch Boolean müsssen ja nicht manuell wieder freigegeben werden (alleine schon weil diese ja auf dem Stack und nicht auf dem Heap landen). Aber wie sieht es mit TDate, TTime und TDateTime aus? Das sind ja intern auch nur Floats, aber wie sieht es da aus? Muss ich um einen Memoryleak die Datumstypen mittels FreeAndNil wieder freigeben oder landen die trotzdem auf dem Stack?

Würde mich einfach mal interessieren, da ich gerade in unserer Software auf der jagt nach Memoryleaks bin.

Viele Grüße
Maliko

mkinzler 9. Okt 2020 09:30

AW: TDateTime freigeben?
 
Wie Du schon gesagt hast, sind das Double-Werte.

Rolf Frei 9. Okt 2020 12:45

AW: TDateTime freigeben?
 
Du musst das nicht freigegen. Das sind keine TObjects sondern einfache Floats. Du musst nur Objekte Freigegen die mit x.Create etrstellt wurden, also Sachen die von TObject abgeleitet sind und das sind alle Objekte in Delphi. Verwende einfach immer ein try/finally, wann immer du ein Objekt erstellst und dann hast die nie Probleme mit Memoryleaks. Auch Records musst du nicht freigeben, es sei denn du hast da speziell Speicher dafür Reserviert (AllocMem, New, etc.). Dieser muss dann natürlich auch wieder freigegeben werden und sollte genauso mit einem Try Finally geschützt werden.

Delphi-Quellcode:
Obj := TMeinObjekt.Create;
try
  //... dein Code mit dem Objekt
finally
  Obj.Free; // Oder alternativ FreAndNil(Obj
end;

generic 11. Okt 2020 21:43

AW: TDateTime freigeben?
 
Zitat:

Zitat von Maliko (Beitrag 1475211)
Moin,
Würde mich einfach mal interessieren, da ich gerade in unserer Software auf der jagt nach Memoryleaks bin.

Kennst du den FastMM4?
In Delphi ist eine abgespeckte Fassung drin.

Das kann dir helfen die Leaks zu finden.

deutsches Video über FastMM:
https://www.youtube.com/watch?v=o0yZgQoV8MA
Da zeige ich u.a., wie du die Finde-Leak Funktion aktivieren kannst.


Alle Zeitangaben in WEZ +1. Es ist jetzt 09:36 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz