AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren

Delphi 7 - Speicherleck

Ein Thema von SonOfOdin · begonnen am 30. Jun 2016 · letzter Beitrag vom 30. Jun 2016
Antwort Antwort
Seite 2 von 2     12
SonOfOdin

Registriert seit: 13. Feb 2008
7 Beiträge
 
Delphi 7 Enterprise
 
#11

AW: Delphi 7 - Speicherleck

  Alt 30. Jun 2016, 13:37
Sorry für den Doppelpost:

Der Screenshot im Anhang:

Für was steht + - und Diff ?
Create - Destroy - und "Übrig geblieben"?

Die Doku von DDDebug ist wohl von Version 0.96 wo es das vermutlich noch nicht gab...
Miniaturansicht angehängter Grafiken
dddebug.png  
  Mit Zitat antworten Zitat
sahimba

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

AW: Delphi 7 - Speicherleck

  Alt 30. Jun 2016, 13:46
Sorry für den Doppelpost:
Der Screenshot im Anhang:
Für was steht + - und Diff ?
Create - Destroy - und "Übrig geblieben"?
Die Doku von DDDebug ist wohl von Version 0.96 wo es das vermutlich noch nicht gab...
Hallo

Ich bin der Autor von DDDebug. Wo hast Du die Version runtergeladen? Die Doku sollte aktualisiert sein. Ich schaue mal, ob das da beschrieben ist. Und ergänze es gegebenenfalls.

Das "Statistik"-Tab ist auch das erste, dass ich verwende wenn ich nach solch wachsendem Speicher suche. Unten gibt es einen Button "Reset", welcher die Counter der einzelnen Klassen zurücksetzt. +/- ist dann die Anzahl der Instanzen einer jeden Klasse, welche seit diesem Zeitpunkt "created" bzw. "destroyed" wurden. (*)
In der Regel ist aber schon die Anzahl der "Live"-Instanzen ein gutes Indiz und liefert Anhaltspunkte, wonach zu suchen ist.


(*) In Deinem Screenshot wurden bspw. seit dem Zeitpunkt der Aktivierung des Trackers 2461 Instanzen der Klasse TBitmapImage erzeugt und von diesen 2460 wieder freigegeben. Eine Instanz ist derzeit noch "im Speicher".

Geändert von sahimba (30. Jun 2016 um 13:50 Uhr)
  Mit Zitat antworten Zitat
SonOfOdin

Registriert seit: 13. Feb 2008
7 Beiträge
 
Delphi 7 Enterprise
 
#13

AW: Delphi 7 - Speicherleck

  Alt 30. Jun 2016, 14:05
Hey,

die Trial habe ich direkt von ddobjects.de geladen.
Im PDF das bei der Installation mit kommt ist auf Seite 18 noch ein Screenshot aus 0.96 ohne die beschriebenen Spalten.
  Mit Zitat antworten Zitat
sahimba

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

AW: Delphi 7 - Speicherleck

  Alt 30. Jun 2016, 14:20
Im PDF das bei der Installation mit kommt ist auf Seite 18 noch ein Screenshot aus 0.96 ohne die beschriebenen Spalten.
Danke für den Hinweis. Ich werde die Dokumentation dann mal anpassen
  Mit Zitat antworten Zitat
taveuni

Registriert seit: 3. Apr 2007
Ort: Zürich
439 Beiträge
 
Delphi 10.4 Sydney
 
#15

AW: Delphi 7 - Speicherleck

  Alt 30. Jun 2016, 15:41
FastMM hat die Funktion "LogMemoryManagerStateToFile". Schreibe zyklisch in die Datei. Du kannst alle paar Minuten / Stunden eine neue Datei anlegen. Darin werden alle instanzierten Objekte gelistet. Wenn es ein "normales" Speicherleck ist findest Du es so.
Die obige Aussage repräsentiert meine persönliche Meinung.
Diese erhebt keinen Anspruch auf Objektivität oder Richtigkeit.
  Mit Zitat antworten Zitat
SonOfOdin

Registriert seit: 13. Feb 2008
7 Beiträge
 
Delphi 7 Enterprise
 
#16

AW: Delphi 7 - Speicherleck

  Alt 30. Jun 2016, 17:09
Hi,

Hatte es nun laufen, bis die Trial abgelaufen ist.

Im Screenshot anbei:
Wie wäre denn jetzt das Vorgehen genau dieses eine Leck zu untersuchen?

Wenn im Callstack "ExceptionManager" auftaucht - bedeutet das es gab im Programm eine Exception?
Miniaturansicht angehängter Grafiken
erg.png  
  Mit Zitat antworten Zitat
sahimba

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

AW: Delphi 7 - Speicherleck

  Alt 30. Jun 2016, 17:28
Wie wäre denn jetzt das Vorgehen genau dieses eine Leck zu untersuchen?
Das kann Dir das Tool auch nicht sagen. Jetzt musst Du halt schauen, wo diese "TDebugMessages" erzeugt werden und was weiter so mit ihnen passiert. Vermutlich werden sie in irgendeiner Liste gehalten, aber "irgendwann" dürften sie ja nicht mehr "benötigt" werden und könn(t)en freigegeben werden. Was ja allem Anschein nach bei Programmende (erst) passiert. Aber das kannst ja nur Du wissen. Oder wer auch immer das gebaut hat

Wenn Du das Programm neu startest, kannst Du auch DDDebug wieder verwenden. Die Trial ist nur während der einzelnen Ausführung limitiert.
  Mit Zitat antworten Zitat
Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

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 +2. Es ist jetzt 07:15 Uhr.
Powered by vBulletin® Copyright ©2000 - 2021, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2021 by Daniel R. Wolf