Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Welches Tool um Memory Leaks aufzuspüren? (D7 / D2007) (https://www.delphipraxis.net/103316-welches-tool-um-memory-leaks-aufzuspueren-d7-d2007.html)

MaBuSE 14. Nov 2007 10:17


Welches Tool um Memory Leaks aufzuspüren? (D7 / D2007)
 
Hallo,
wenn man in der DP nach Memory Leaks sucht bekommt man 55 Treffer. (jetzt 56 :mrgreen:)
Es scheint also ein Thema zu sein, mit dem sich schon einige beschäftigt haben.

Wir verwenden Delphi 7 und Delphi 2007 for Win32.

In der DP wird häufig von dem FastMM4 gesprochen, der ja auch in einer überarbeiteten (abgespeckten) Version ab Delphi 2006 verwendet wird. Die Original Version von FastMM kann aber wohl noch etwas mehr, als bei Delphi mitgeliefert: z.B. MemoryLeaks zeigen.

Es gibt aber noch viele andere Tools.

Folgende Tools habe ich bei einer kleinen Recherche gefunden:Hat jemand Erfahrungen mit diesen Tools?
Kenn ihr noch andere (brauchbare) Tools?

Über zahlreiche Antworten würde ich mich freuen.
Euer MaBuSE

[edit: DDSerer hinzugefügt]

generic 14. Nov 2007 10:19

Re: Welches Tool um Memory Leaks aufzuspüren? (D7 / D2007)
 
Ich nutze den FastMM4.
Sehr gute Ergebnisse, wie ich finde.

Vor allem kann man dort auch erwartete Speicherlecks registieren, so das man nicht gedängelt wird.
(praktisch wenn man die Indy's im Einsatz hat)

Meflin 14. Nov 2007 10:37

Re: Welches Tool um Memory Leaks aufzuspüren? (D7 / D2007)
 
Ich habe MemCheck MemProof [Das es offiziell scheinbar auch nicht mehr gibt] schon benutzt, war damit ganz zufrieden. Die Oberfläche ist eben sehr benutzerfreundlich, Die Leaks werden i.d.R. auch der Codezeile zugeordnet, in der sie entstehen, die Performance Counter (was wird wie oft aufgerufen) sind auch ganz nützlich.

Das einzige was mich störte war ein Leak dass in jeder, selbst neuen, unmodifizierten Anwendungen erkannt wurde, ich kam nie dahinter, was es damit eigentlich auf sich hatte :(


mkinzler 14. Nov 2007 10:58

Re: Welches Tool um Memory Leaks aufzuspüren? (D7 / D2007)
 
http://www.kbasm.com/denomo.html

jbg 14. Nov 2007 12:41

Re: Welches Tool um Memory Leaks aufzuspüren? (D7 / D2007)
 
Zitat:

Zitat von Meflin
Das einzige was mich störte war ein Leak dass in jeder, selbst neuen, unmodifizierten Anwendungen erkannt wurde, ich kam nie dahinter, was es damit eigentlich auf sich hatte :(

Waren das zufälligerweise immer 4 KB ?
Wenn ja, dann wäre das hier wohl eine Lösung dafür.

Meflin 14. Nov 2007 13:45

Re: Welches Tool um Memory Leaks aufzuspüren? (D7 / D2007)
 
Zitat:

Zitat von jbg
Waren das zufälligerweise immer 4 KB ?
Wenn ja, dann wäre das hier wohl eine Lösung dafür.

Da dort steht dass sich das nur auf DLLs bezieht, glaube ich nicht, dass es das war. Wenn ich mich recht erinnere, waren es sogar immer deutlich mehr als 4kb, aber um genaueres zu sagen müsste ich es erst wieder ausprobieren, ist doch schon ne Weile her :stupid:


jbg 14. Nov 2007 14:24

Re: Welches Tool um Memory Leaks aufzuspüren? (D7 / D2007)
 
Zitat:

Zitat von Meflin
Da dort steht dass sich das nur auf DLLs bezieht, glaube ich nicht, dass es das war.

Das dort beschriebene Speicherleck bezieht sich auch auf die EXE. Nur wenn diese Entladen wird, räumt Windows auf, da der Prozess beendet ist. Entlädt man jedoch eine DLL bleibt der Prozess bestehen und die 4 KB häufen sich an, wenn man DLLs mehrmals lädt und entlädt. Es kann natürlich auch mehr Speicher sein, aber ein vielfaches von 4 KB, die mittels VirtualAlloc reserviert wurden.

hoika 14. Nov 2007 14:29

Re: Welches Tool um Memory Leaks aufzuspüren? (D7 / D2007)
 
Hallo,

ich hatte am Anfang auch memproof, bin dann aber zu memcheck gewechselt,
weil das besser integriert ist.
Es zeigt am Programmende genau die Stelle, wo der Fehler auftritt (also XXX.Create)

Es funktioniert, fertsch ;)

Zu FastMM4 kann ich nichts sagen,
bin zu faul es zu probieren, weil mir memcheck reicht.

Interessant wäre aber die "erwarteten Lecks", das kann memcheck nicht.


Heiko


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