![]() |
Speicherleaks finden unter DX Seattle
Guten Morgen Praxis,
momentan beschäftige ich mich mit dem Thema Memory Leaks. Nach Recherche bin ich auf folgende Möglichkeiten gestoßen:
Zu dem Thema finden sich einige Seiten in Netz, allerdings sind diese Teils schon einige (6+) Jahre alt. Daher frage ich mich, ob diese Programme immernoch in DX Seattle im Jahre 2016 genutzt werden sollten, oder bereits überholt sind? Nachdem ich ![]() Oder ist mit "vollständige Version" die FastMM Version auf SourceForge gemeint? Welche Tools verwendet Ihr zum Auffinden von Speicherleaks? - Tommy |
AW: Speicherleaks finden unter DX Seattle
Der integrierte FASTMM reicht mir zur Memleak-Diagnose
|
AW: Speicherleaks finden unter DX Seattle
Zitat:
Delphi-Quellcode:
gemeint ist?
ReportMemoryLeaksOnShutdown := True;
|
AW: Speicherleaks finden unter DX Seattle
Zitat:
Und ja, ich denke genau das meint er damit. |
AW: Speicherleaks finden unter DX Seattle
|
AW: Speicherleaks finden unter DX Seattle
Danke für euren Input. Ich werde mir dann wohl mal FastMM auf Github anschauen :thumb:
|
AW: Speicherleaks finden unter DX Seattle
Ich antworte einfach mal, weil ich (5) entwickelt habe:
![]() Und ja: das Tool läuft auch unter Delphi Seattle und wird noch weiter entwickelt. Der Ansatz ist ein vollkommen anderer als bei FastMM, welches Dir - am Ende eines Programmes - die Leaks anzeigt. Oftmals hilft das aber nicht weiter, weil Deine Anwendung laufend Speicher anfordert und korrekterweise zu Programmschluß auch freigibt. Was zur Laufzeit passiert, kann Dir FastMM nur eingeschränkt liefern. |
AW: Speicherleaks finden unter DX Seattle
Hallo,
der letzte und vorletzte Satz passen irgendwie nicht zusammen. Ich will die leaks, also was gar nicht freigegeben wird. Sicher wird es auch Programme geben, die immer mehr Speicher anfordern und zum Schluss alles korrekt freigeben, das muss man aber auch erst mal programmieren . . . FastMM4 zeigt mir doch zum Schluss genau an, was zur Laufzeit im Speicher passiert ist, leider nicht chronologisch, das ist war. Heiko |
AW: Speicherleaks finden unter DX Seattle
Zitat:
Dies kann FastMM auch in der Regel sehr gut analysieren. Wenn die Stacktraces von FastMM nicht aussagekräftig sind, was leider immer wieder mal passiert, oder wenn es zur Laufzeit Probleme gibt, wird es schwieriger. Ein einfaches Beispiel: Nehmen wir eine TCP-Komponente. Diese wird nun zwischendurch für eine Kommunikation erstellt, mit Owner, einmal verwendet und dann vergessen. Durch den Owner wird diese am Ende freigegeben, FastMM zeigt dir nichts an. Mit DDObjects siehst du das aber, weil du zur Laufzeit siehst, dass die Anzahl der Instanzen dieser Komponente ansteigt. Vermutlich hat Stefan selbst auch noch bessere Beispiele. ;-) |
AW: Speicherleaks finden unter DX Seattle
Hallo,
hm, kein gutes Beispiel ;) Wenn es aufgeräumt wird, ist doch schön ;) Nein, im Ernst. Ein schönes Beispiel, weil ich die Komponente in einer Schleife ja 1000mal erzeugen könnte und FastMM4 mir keine Info gibt, dass ich sie selber nicht freigebe. Würde bei mir allerdings nicht passieren, weil bei mir der Owner idR nil ist. Heiko |
Alle Zeitangaben in WEZ +1. Es ist jetzt 15:46 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