AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

TDateTime freigeben?

Ein Thema von Maliko · begonnen am 9. Okt 2020 · letzter Beitrag vom 11. Okt 2020
Antwort Antwort
Maliko

Registriert seit: 20. Jun 2019
91 Beiträge
 
Delphi 10.3 Rio
 
#1

TDateTime freigeben?

  Alt 9. Okt 2020, 09:29
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
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.858 Beiträge
 
Delphi 11 Alexandria
 
#2

AW: TDateTime freigeben?

  Alt 9. Okt 2020, 09:30
Wie Du schon gesagt hast, sind das Double-Werte.
Markus Kinzler
  Mit Zitat antworten Zitat
Rolf Frei

Registriert seit: 19. Jun 2006
647 Beiträge
 
Delphi 11 Alexandria
 
#3

AW: TDateTime freigeben?

  Alt 9. Okt 2020, 12:45
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;
  Mit Zitat antworten Zitat
generic

Registriert seit: 24. Mär 2004
Ort: bei Hannover
2.416 Beiträge
 
Delphi XE5 Professional
 
#4

AW: TDateTime freigeben?

  Alt 11. Okt 2020, 21:43
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.
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 07:37 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