AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

FastMM4 for Dummies

Ein Thema von Ykcim · begonnen am 4. Feb 2010 · letzter Beitrag vom 4. Feb 2010
Antwort Antwort
Ykcim

Registriert seit: 29. Dez 2006
Ort: NRW
824 Beiträge
 
Delphi 10.4 Sydney
 
#1

FastMM4 for Dummies

  Alt 4. Feb 2010, 14:31
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
Patrick
  Mit Zitat antworten Zitat
mjustin

Registriert seit: 14. Apr 2008
3.006 Beiträge
 
Delphi 2009 Professional
 
#2

Re: FastMM4 for Dummies

  Alt 4. Feb 2010, 14:36
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,
Michael Justin
habarisoft.com
  Mit Zitat antworten Zitat
Ykcim

Registriert seit: 29. Dez 2006
Ort: NRW
824 Beiträge
 
Delphi 10.4 Sydney
 
#3

Re: FastMM4 for Dummies

  Alt 4. Feb 2010, 14:50
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
Patrick
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.623 Beiträge
 
Delphi 12 Athens
 
#4

Re: FastMM4 for Dummies

  Alt 4. Feb 2010, 14:53
In der Projektdatei fügst Du als Erstes FastMM4 zur uses-Klausel hinzu und schreibst dann die genannte Zeile als erste hinter das begin.
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
Ykcim

Registriert seit: 29. Dez 2006
Ort: NRW
824 Beiträge
 
Delphi 10.4 Sydney
 
#5

Re: FastMM4 for Dummies

  Alt 4. Feb 2010, 15:09
Das ist erledigt!

Aber wo finde ich den Report?
Patrick
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

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

Re: FastMM4 for Dummies

  Alt 4. Feb 2010, 15:11
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)
Neuste Erkenntnis:
Seit Pos einen dritten Parameter hat,
wird PoSex im Delphi viel seltener praktiziert.
  Mit Zitat antworten Zitat
Ykcim

Registriert seit: 29. Dez 2006
Ort: NRW
824 Beiträge
 
Delphi 10.4 Sydney
 
#7

Re: FastMM4 for Dummies

  Alt 4. Feb 2010, 15:30
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
Patrick
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

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

Re: FastMM4 for Dummies

  Alt 4. Feb 2010, 15:35
Probier es einfach aus und erstell dir ein Speicherleck.

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

[edit]
@DeddyH
Neuste Erkenntnis:
Seit Pos einen dritten Parameter hat,
wird PoSex im Delphi viel seltener praktiziert.
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.623 Beiträge
 
Delphi 12 Athens
 
#9

Re: FastMM4 for Dummies

  Alt 4. Feb 2010, 15:36
Vermutlich heißt es das Du kannst aber zum Vergleich absichtlich ein Speicherleck erzeugen und dann schauen, ob FastMM dies auch meldet.
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  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 06:23 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