Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   FastMM4 for Dummies (https://www.delphipraxis.net/147249-fastmm4-dummies.html)

Ykcim 4. Feb 2010 13:31


FastMM4 for Dummies
 
Hallo,

ich habe ein Programm mit einer aufwendigen Funktion, bei der sehr viel Speicher verbraucht wird. Da dieses Programm mit unterschiedlichsten Speicheradressen regelmäßig abstürzt, wollte ich den oft genannten FastMM4 verwenden, in der Hoffnung, dass er mir hilft, den Fehler zu finden.

Ich habe aber so etwas noch nie verwendet und kriege das Ding einfach nicht dazu, dass er mir etwas ausspuckt. Ich habe ihn als erstes in meiner Projektdatei eingebunden. Aber wie bekomme ich ihn jetzt zum Arbeiten, bzw. ein Ergebis?

Vielen Dank

Ykcim

mjustin 4. Feb 2010 13:36

Re: FastMM4 for Dummies
 
Zitat:

Zitat von Ykcim
Ich habe aber so etwas noch nie verwendet und kriege das Ding einfach nicht dazu, dass er mir etwas ausspuckt. Ich habe ihn als erstes in meiner Projektdatei eingebunden. Aber wie bekomme ich ihn jetzt zum Arbeiten, bzw. ein Ergebis?

Am Anfang der Projektdatei:

ReportMemoryLeaksOnShutdown := True;

Näheres siehe FastMM4.pas :)

FastMM4 nützt aber wahrscheinlich nichts wenn das Programm abstürzt, die Speicherlecks werden nur bei einem normalen Beenden angezeigt.

Für die Untersuchung der Absturzursache ist madExcept empfehlenswert, da es einen Stacktrace zum Zeitpunkt der AccessViolation erstellt.

Viele Grüße,

Ykcim 4. Feb 2010 13:50

Re: FastMM4 for Dummies
 
Hallo Mjustin,

Danke für die schnelle Antwort.
Leider komme ich damit aber noch nicht viel weiter.

Zitat:

Am Anfang der Projektdatei:

ReportMemoryLeaksOnShutdown := True;
Muss das in eine Funktion, oder wenn das Form onshow Ereignis? Wohl ehe nicht. Aber wohin?

Wie bekomme ich den Report? Wird eine Datei angelegt oder ist das ein POPUP Fenster?

Zitat:

Näheres siehe FastMM4.pas
Heißt das, dass ich versuche muss jede Zeile der FastMM4.pas zu verstehen, um dann Änderungen vornehmen zu müssen?

Wie Du siehst, bin ich kein geübter Programmierer.

Vielen Dank für Deine Hilfe

Ykcim

DeddyH 4. Feb 2010 13:53

Re: FastMM4 for Dummies
 
In der Projektdatei fügst Du als Erstes FastMM4 zur uses-Klausel hinzu und schreibst dann die genannte Zeile als erste hinter das begin.

Ykcim 4. Feb 2010 14:09

Re: FastMM4 for Dummies
 
Das ist erledigt!

Aber wo finde ich den Report?

himitsu 4. Feb 2010 14:11

Re: FastMM4 for Dummies
 
Erstmal: Welche Delphiversion nutzt du?

Ein neueren Versionen ist eine spezielle Version von FastMM schon enthalten
und in älteren muß man FastMM erstmal installieren

[add]
ReportMemoryLeaksOnShutdown sorgt dafür, daß bei Programmende eine Messagebox eingeblendet wird, wenn etwas nicht stimmt. (ist alles OK, dann wird nix angezeigt)

Ykcim 4. Feb 2010 14:30

Re: FastMM4 for Dummies
 
Hallo,

danke für die Info
Zitat:

ReportMemoryLeaksOnShutdown sorgt dafür, daß bei Programmende eine Messagebox eingeblendet wird, wenn etwas nicht stimmt. (ist alles OK, dann wird nix angezeigt)
Ich nutze TurboDelphi.

Ich habe mein Programm gestartet und dann wieder beendet. Ich habe keine Info erhalten. Heißt das dann, dass ich kein Speicherleck habe?

Danke für Eure Hilfe

Ykcim

himitsu 4. Feb 2010 14:35

Re: FastMM4 for Dummies
 
Probier es einfach aus und erstell dir ein Speicherleck.

z.B.:
Delphi-Quellcode:
TStringList.Create;
oder
Delphi-Quellcode:
GetMem(100);
Und diesesmal absichtlich vergessen es freizugeben. :zwinker:

[edit]
@DeddyH :tongue:

DeddyH 4. Feb 2010 14:36

Re: FastMM4 for Dummies
 
Vermutlich heißt es das ;) Du kannst aber zum Vergleich absichtlich ein Speicherleck erzeugen und dann schauen, ob FastMM dies auch meldet.


Alle Zeitangaben in WEZ +1. Es ist jetzt 14:09 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-2025 by Thomas Breitkreuz