AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Die Delphi-IDE Speicherleaks finden unter DX Seattle
Thema durchsuchen
Ansicht
Themen-Optionen

Speicherleaks finden unter DX Seattle

Ein Thema von tommy84 · begonnen am 20. Feb 2016 · letzter Beitrag vom 22. Feb 2016
Antwort Antwort
tommy84

Registriert seit: 30. Jan 2016
29 Beiträge
 
#1

Speicherleaks finden unter DX Seattle

  Alt 20. Feb 2016, 10:02
Guten Morgen Praxis,

momentan beschäftige ich mich mit dem Thema Memory Leaks.
Nach Recherche bin ich auf folgende Möglichkeiten gestoßen:
  1. FastMM
  2. MadExcept
  3. EurekaLog
  4. ReportMemoryLeaksOnShutdown := True;
  5. DDObjects

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 diese Emba-Wiki Seite gelesen habe frage ich mich, ob FastMM mittlerweile in DX Seattle integriert wurde?
Oder ist mit "vollständige Version" die FastMM Version auf SourceForge gemeint?


Welche Tools verwendet Ihr zum Auffinden von Speicherleaks?


- Tommy
  Mit Zitat antworten Zitat
Benutzerbild von Sir Rufo
Sir Rufo

Registriert seit: 5. Jan 2005
Ort: Stadthagen
9.454 Beiträge
 
Delphi 10 Seattle Enterprise
 
#2

AW: Speicherleaks finden unter DX Seattle

  Alt 20. Feb 2016, 10:26
Der integrierte FASTMM reicht mir zur Memleak-Diagnose
Kaum macht man's richtig - schon funktioniert's
Zertifikat: Sir Rufo (Fingerprint: ‎ea 0a 4c 14 0d b6 3a a4 c1 c5 b9 dc 90 9d f0 e9 de 13 da 60)
  Mit Zitat antworten Zitat
tommy84

Registriert seit: 30. Jan 2016
29 Beiträge
 
#3

AW: Speicherleaks finden unter DX Seattle

  Alt 20. Feb 2016, 11:09
Der integrierte FASTMM reicht mir zur Memleak-Diagnose
Gehe ich richtig in der Annahme, dass damit ReportMemoryLeaksOnShutdown := True; gemeint ist?
  Mit Zitat antworten Zitat
Der schöne Günther
Online

Registriert seit: 6. Mär 2013
6.159 Beiträge
 
Delphi 10 Seattle Enterprise
 
#4

AW: Speicherleaks finden unter DX Seattle

  Alt 20. Feb 2016, 13:04
Nachdem ich diese Emba-Wiki Seite gelesen habe frage ich mich, ob FastMM mittlerweile in DX Seattle integriert wurde?
Oder ist mit "vollständige Version" die FastMM Version auf SourceForge gemeint?
Soweit ich das verstanden habe ist die im RAD Studio eine etwas abgespeckte Version der Sourceforge-Version. Letztere kann bei Speicherlecks dir gleich den Stack loggen wo der Speicher angefordert wurde, das ist klasse. Und genau das macht mich auch eigentlich schon wunschlos glücklich.

Und ja, ich denke genau das meint er damit.
  Mit Zitat antworten Zitat
KHJ

Registriert seit: 15. Dez 2005
35 Beiträge
 
Delphi 11 Alexandria
 
#5

AW: Speicherleaks finden unter DX Seattle

  Alt 20. Feb 2016, 13:19
Nur zur Info, FastMM4 ist auf GitHub umgezogen https://github.com/pleriche/FastMM4

Karlheinz
Karlheinz Jansen
  Mit Zitat antworten Zitat
tommy84

Registriert seit: 30. Jan 2016
29 Beiträge
 
#6

AW: Speicherleaks finden unter DX Seattle

  Alt 20. Feb 2016, 16:01
Danke für euren Input. Ich werde mir dann wohl mal FastMM auf Github anschauen
  Mit Zitat antworten Zitat
sahimba

Registriert seit: 14. Nov 2011
Ort: Berlin, Hauptstadt der DDR
137 Beiträge
 
Delphi 10 Seattle Professional
 
#7

AW: Speicherleaks finden unter DX Seattle

  Alt 20. Feb 2016, 17:49
Ich antworte einfach mal, weil ich (5) entwickelt habe: http://ddobjects.de/dddebug
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.
  Mit Zitat antworten Zitat
hoika

Registriert seit: 5. Jul 2006
Ort: Magdeburg
8.275 Beiträge
 
Delphi 10.4 Sydney
 
#8

AW: Speicherleaks finden unter DX Seattle

  Alt 22. Feb 2016, 06:03
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
Heiko
  Mit Zitat antworten Zitat
Benutzerbild von jaenicke
jaenicke

Registriert seit: 10. Jun 2003
Ort: Berlin
9.582 Beiträge
 
Delphi 11 Alexandria
 
#9

AW: Speicherleaks finden unter DX Seattle

  Alt 22. Feb 2016, 06:48
der letzte und vorletzte Satz passen irgendwie nicht zusammen.
Ich will die leaks, also was gar nicht freigegeben wird
Die Leaks, die am Ende noch da sind, sind allerdings oft gar nicht so relevant. Denn Windows räumt ohnehin das meiste hinterher auf, insbesondere normal reservierten Speicherplatz.
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.
Sebastian Jänicke
Alle eigenen Projekte sind eingestellt, ebenso meine Homepage, Downloadlinks usw. im Forum bleiben aktiv!
  Mit Zitat antworten Zitat
hoika

Registriert seit: 5. Jul 2006
Ort: Magdeburg
8.275 Beiträge
 
Delphi 10.4 Sydney
 
#10

AW: Speicherleaks finden unter DX Seattle

  Alt 22. Feb 2016, 08:00
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
Heiko
  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 13:22 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