AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Object-Pascal / Delphi-Language Delphi Programm verbraucht Speicher, Speicherfresser
Thema durchsuchen
Ansicht
Themen-Optionen

Programm verbraucht Speicher, Speicherfresser

Ein Thema von FriendOfDelphi · begonnen am 29. Aug 2012 · letzter Beitrag vom 29. Aug 2012
Antwort Antwort
FriendOfDelphi

Registriert seit: 21. Mai 2010
163 Beiträge
 
Delphi 5 Professional
 
#1

Programm verbraucht Speicher, Speicherfresser

  Alt 29. Aug 2012, 14:31
Delphi-Version: 5
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?
Herzlichen Gruß
FriendOfDelphi
  Mit Zitat antworten Zitat
Benutzerbild von s.h.a.r.k
s.h.a.r.k

Registriert seit: 26. Mai 2004
3.159 Beiträge
 
#2

AW: Programm verbraucht Speicher, Speicherfresser

  Alt 29. Aug 2012, 14:40
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.
»Remember, the future maintainer is the person you should be writing code for, not the compiler.« (Nick Hodges)
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.184 Beiträge
 
Delphi 12 Athens
 
#3

AW: Programm verbraucht Speicher, Speicherfresser

  Alt 29. Aug 2012, 14:42
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).
$2B or not $2B
  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 09:16 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