Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi Programm verbraucht Speicher, Speicherfresser (https://www.delphipraxis.net/170071-programm-verbraucht-speicher-speicherfresser.html)

FriendOfDelphi 29. Aug 2012 13:31

Delphi-Version: 5

Programm verbraucht Speicher, Speicherfresser
 
Hallo Allerseits,

ich habe das Problem das mein Delphi-Programm während der Laufzeit immer mehr Speicher verbraucht und schließlich mit einem "out of memory"-Error beendet wird.

Im Forum habe ich gelesen, dass es dafür eine Delphi-Erweiterung namens "FastMM4" gibt, mit der man diese Stellen im Programm lokalisieren kann.
Dieses habe ich unter http://sourceforge.net/projects/fastmm/ heruntergeladen.

Um das Tool zum Laufen zu bringen, habe ich wie im Forum und in der mitgeleiferten Hilfedatei beschrieben, die Delphi-Dateien "FastMM4.pas", "FastMM4Messages.pas" und "FastMM4Options.inc", sowie die vorcompilierte DLL "FastMM_FullDebugMode.dll" in das Programmverzeichnis kopiert.

Weiterhin habe ich in der Projektdatei (*.dpr) die Unit "FastMM4" in die uses-Klausel aufgenommen und im FormCreate "ReportMemoryLeaksOnShutdown:= True;" eingetragen.

Beim Compilieren meldet mir der Compiler "... Undefinierter Bezeichner: 'ReportMemoryLeaksOnShutdown:= True;'".

Was mache ich falsch?

s.h.a.r.k 29. Aug 2012 13:40

AW: Programm verbraucht Speicher, Speicherfresser
 
Trage in der dpr-Datei gleich nach dem begin das hier ein: ReportMemoryLeaksOnShutdown:= True;

Dann klappt es.

Grund: die Variable ReportMemoryLeaksOnShutdown ist in der Unit FastMM4 definiert. Wenn du diese nur in der dpr-Datei einbindest kann auch nur dort darauf zugegriffen werden. Würdest du in der entsprechenden Unit, in der auch dein FormCreate steht, in die FastMM4-Unit einbinden, dann könntest du auch dort auf ReportMemoryLeaksOnShutdown zugreifen. Aber belasse das FastMM-Gedöns in der DPR und du musst nur in einer Datei danach schauen und hast es nicht in x-beliebigen verteilt.

himitsu 29. Aug 2012 13:42

AW: Programm verbraucht Speicher, Speicherfresser
 
Delphi-Referenz durchsuchenReportMemoryLeaksOnShutdown ist eine Variable des Embarcadero-Version des FastMM, welche es IMHO nur in den Delphis gibt, welche FastMM von Haus aus mitliefern.

Bei der origianlen Variante des FastMM muß man die entsprechenden Optionen in der FastMM4Options.inc einstellen und das Projekt neu kompilieren (am Besten neu "erzeugen", da Delphi Änderungen in Include-Dateien gerne übersieht).


Alle Zeitangaben in WEZ +1. Es ist jetzt 04:52 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