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
sahimba

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

AW: Speicherleaks finden unter DX Seattle

  Alt 20. Feb 2016, 16: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.277 Beiträge
 
Delphi 10.4 Sydney
 
#2

AW: Speicherleaks finden unter DX Seattle

  Alt 22. Feb 2016, 05: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.989 Beiträge
 
Delphi 12 Athens
 
#3

AW: Speicherleaks finden unter DX Seattle

  Alt 22. Feb 2016, 05: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
AppCentral
  Mit Zitat antworten Zitat
hoika

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

AW: Speicherleaks finden unter DX Seattle

  Alt 22. Feb 2016, 07: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 09:54 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