AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren

ClientDataset Memoryleak

Ein Thema von Koloss · begonnen am 30. Mär 2016 · letzter Beitrag vom 31. Mär 2016
Antwort Antwort
Seite 1 von 2  1 2   
Koloss

Registriert seit: 21. Jul 2010
74 Beiträge
 
Delphi 2 Desktop
 
#1

ClientDataset Memoryleak

  Alt 30. Mär 2016, 11:52
Datenbank: Clientdataset • Version: Seattle 10 • Zugriff über: cds
Mir sind die Clientdataset Bugs in Delphi 2010 bekannt aber auch in Delphi Seattle 10 gibt es Memoryleaks bei Clientdatasets.

Ich habe LogChanges := False eingestellt und wenn ich einen Datensatz lösche und wieder hinzufüge steigt der Speicher.
Wenn ich aber den Datensatz nur editiere bleibt der Speicher gleich.

Das kann man sehr einfach in einen Timer testen und im Windows Task Manager nachschauen.

Mit Logchanges := True und MergeChangeLog das selbe Problem!
  Mit Zitat antworten Zitat
Benutzerbild von Uwe Raabe
Uwe Raabe

Registriert seit: 20. Jan 2006
Ort: Lübbecke
10.993 Beiträge
 
Delphi 12 Athens
 
#2

AW: ClientDataset Memoryleak

  Alt 30. Mär 2016, 12:09
Das ist jetzt nicht unbedingt ein Memoryleak im eigentlichen Sinne. Der Taskmanager weiß nämlich nichts über den intern vom Delphi Speichermanager verfügbaren Speicher. Kommt denn bei aktiviertem ReportMemoryLeaksOnShutdown := true; eine entsprechende Meldung?
Uwe Raabe
Certified Delphi Master Developer
Embarcadero MVP
Blog: The Art of Delphi Programming
  Mit Zitat antworten Zitat
Koloss

Registriert seit: 21. Jul 2010
74 Beiträge
 
Delphi 2 Desktop
 
#3

AW: ClientDataset Memoryleak

  Alt 30. Mär 2016, 12:22
Diesen Befehl konnte ich noch gar nicht.

Edit: Auch ohne verursachten Memory leak kommt der gleiche Auszug.

Der Speicher steigt aber kontinuierlich nach oben! Erst mit EmptyDataset ist der Speicher wieder frei.
Miniaturansicht angehängter Grafiken
screenshot-2016-03-30-13.21.44.png  

Geändert von Koloss (30. Mär 2016 um 13:06 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von Uwe Raabe
Uwe Raabe

Registriert seit: 20. Jan 2006
Ort: Lübbecke
10.993 Beiträge
 
Delphi 12 Athens
 
#4

AW: ClientDataset Memoryleak

  Alt 30. Mär 2016, 15:49
Edit: Auch ohne verursachten Memory leak kommt der gleiche Auszug.
Dann hat die Applikation noch andere Leaks.

Der Speicher steigt aber kontinuierlich nach oben! Erst mit EmptyDataset ist der Speicher wieder frei.
Dann ist es nicht wirklich ein Leak, der Speicher wird ja kontrolliert wieder freigegeben. Vermutlich ist er auch Delphi-intern als verfügbar markiert. Lediglich Windows merkt davon nichts. Der Hinweis, daß ReportMemoryLeaksOnShutdown kein (zusätzliches) Leak erkennt, ist schonmal ein gutes Zeichen.

Ach ja: welche Delphi-Version?
Uwe Raabe
Certified Delphi Master Developer
Embarcadero MVP
Blog: The Art of Delphi Programming
  Mit Zitat antworten Zitat
ventiseis

Registriert seit: 15. Jan 2009
Ort: 94032 Passau
53 Beiträge
 
Delphi 10.2 Tokyo Enterprise
 
#5

AW: ClientDataset Memoryleak

  Alt 30. Mär 2016, 16:11
Die Delphi-Version steht im ersten Posting: Seattle.

Ich habe ein ähnliches Problem auf StackOverflow beschrieben, aber bisher hat das Internet noch keine Antwort gewusst

Allerdings bin ich mir nicht sicher, ob es vielleicht auch am internen FastMM liegt, der mit der mit irgendeiner Neuerung nicht zurecht kommt. Verwendet man den FastMM von SourceForge mit FullDebugMode, dann kommt genau keine Meldung mehr.
Bastian
  Mit Zitat antworten Zitat
Benutzerbild von Uwe Raabe
Uwe Raabe

Registriert seit: 20. Jan 2006
Ort: Lübbecke
10.993 Beiträge
 
Delphi 12 Athens
 
#6

AW: ClientDataset Memoryleak

  Alt 30. Mär 2016, 16:25
Die Delphi-Version steht im ersten Posting: Seattle.
In der Tat! Schade, daß man das nicht sehen kann, während man antwortet...
Uwe Raabe
Certified Delphi Master Developer
Embarcadero MVP
Blog: The Art of Delphi Programming
  Mit Zitat antworten Zitat
hoika

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

AW: ClientDataset Memoryleak

  Alt 30. Mär 2016, 16:31
Hallo,
hast du beim externen FastMM4 auch die Inc-Datei entsprechend angepasst?

Heiko
Heiko
  Mit Zitat antworten Zitat
ventiseis

Registriert seit: 15. Jan 2009
Ort: 94032 Passau
53 Beiträge
 
Delphi 10.2 Tokyo Enterprise
 
#8

AW: ClientDataset Memoryleak

  Alt 30. Mär 2016, 16:45
Ich würde behaupten: Ja.
Bastian
  Mit Zitat antworten Zitat
sahimba

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

AW: ClientDataset Memoryleak

  Alt 30. Mär 2016, 19:13
Der Hinweis, daß ReportMemoryLeaksOnShutdown kein (zusätzliches) Leak erkennt, ist schonmal ein gutes Zeichen
Nicht unbedingt. Sehr oft, und ich debugge gerade an einem solchen Memoryleak in Datasnap (*), wird der Speicher zwar beim Beenden der Applikation freigegeben so dass ReportMemoryLeaksOnShutdown nichts meldet und doch kann die Anwendung ein Problem mit stetig wachsendem Speicher haben.

(*) ...konkret debugge ich nicht mehr sondern habe das Problem eingegrenzt und, auch in Delphi Seattle, ist da ein böser Hund begraben der schon bei einer HelloWorld-Datasnap-Anwendung auftritt.
  Mit Zitat antworten Zitat
Koloss

Registriert seit: 21. Jul 2010
74 Beiträge
 
Delphi 2 Desktop
 
#10

AW: ClientDataset Memoryleak

  Alt 31. Mär 2016, 09:36
Bei mir wird auch der Speicher freigegeben wenn ich das Programm beende.
Auch mit cds.EmptyDataset wird der Speicher freigegegeben, nur eben mit cds.Delete nicht.

Ob ich eben
cds.First
while not cds.EOF
cds.Delete

oder eben

cds.EmptyDataset

schreibe, sollte bei Logchanges = False, das selbe sein.
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2   

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 +1. Es ist jetzt 02:01 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