Einzelnen Beitrag anzeigen

alzaimar
(Moderator)

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

Re: Memleaks bei Beenden der Anwendung vermeiden?

  Alt 25. Mär 2010, 06:53
Zitat von Corpsman:
Ich schreibe in meinen Code nach der Verwendung einer Klasse sogar immer noch Extra dsa setzen auf NIL, schaden tut das nicht.
Doch, der Übersichtlichkeit. Jemand, der deinen Code liest, fragt sich doch: Warum macht er das?

Wenn schon, verwende FreeAndNil. Macht das Gleiche, ist auch überflüssig, aber inzwischen Usus unter Delphi-Programmierern.

Zur eigentlichen Frage: Also wenn deine SW nur(!) zum Programmende Speicher nicht freigibt (Siehe Indy), dann ist das kein Problem, hat aber einen kleinen Haken:

Wenn ich Delphi-Programme hinsichtlich Speicherlecks mit FastMM prüfe, dann bin ich erst dann zufrieden, wenn das Fehlerlog leer ist, bzw. die üblichen VCL-Macken zeigt. Da stört dann ein redundantes Freigeben einfach. Schlimm, wenn diese Struktur eine Liste mit Mio Einträgen ist (ein Cache z.B.). Das müllt mir das FastMM-Log zu. Da geb ich das doch eben frei und kann weitermachen.

Ich frage mich aber, wie Du sicherstellst, das dein Programm sonst keine Speicherlecks erzeugt? Glotzt du nur auf den Taskmanager?
"Wenn ist das Nunstruck git und Slotermeyer? Ja! Beiherhund das Oder die Flipperwaldt gersput!"
(Monty Python "Joke Warefare")
  Mit Zitat antworten Zitat