AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Programmieren allgemein Mein Programm ist Arbeitsspeicher hungrig..
Thema durchsuchen
Ansicht
Themen-Optionen

Mein Programm ist Arbeitsspeicher hungrig..

Ein Thema von Cubysoft · begonnen am 18. Mai 2015 · letzter Beitrag vom 20. Mai 2015
 
Benutzerbild von Dalai
Dalai

Registriert seit: 9. Apr 2006
1.683 Beiträge
 
Delphi 5 Professional
 
#30

AW: Mein Programm ist Arbeitsspeicher hungrig..

  Alt 19. Mai 2015, 00:39
Da werden einige Variablen Objekte (Krümelkackermode: "Instanz einer Klasse") erzeugt, aber nicht wieder freigegeben, vor allem in den Funktionen BuiltIDList und BuiltIDListEx. Da letztere noch dazu in einer Schleife x-fach aufgerufen wird, dengeln dann mehrere Objekte von http und ssl im Speicher rum -> Speicherleck. Dagegen hilft einerseits konsequentes Einhalten von Coding-Richtlinien* und andererseits ReportMemoryLeaksOnShutdown oder andere Tools zum Finden von Speicherlecks.

[EDIT] Da gibt's sogar noch weitere Objekte in den anderen Funktionen, die nicht wieder freigegeben werden. [/QUOTE]

*) Man muss sich einfach selbst zwingen, sauber zu schreiben, d.h. sofort beim Erzeugen eines Objekts das Freigeben gleich mit hinschreiben, bevor man sich an den eigentlichen Code zum Verwenden des Objekts macht. Mal ein Beispiel: erst dieses Rumpfgerüst schreiben:
Delphi-Quellcode:
objekt:= TKlasse.Create;
try
  // Code
finally
  objekt.Free
end;
und dann erst im try -Block den eigentlichen Code hinzufügen. So gehe ich jedenfalls vor.

MfG Dalai

PS: Übrigens ist der Name BuiltIDList falsch, es müsste BuildIDList heißen, denn das Teil wird erst aufgebaut und wurde nicht bereits erzeugt (built = Vergangenheitsform von build).

Geändert von Dalai (19. Mai 2015 um 00:45 Uhr)
  Mit Zitat antworten Zitat
 


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:32 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz