![]() |
Datenbank: Nexus • Version: 4 • Zugriff über: Nexus
MemoryLeak in Nexus?
Liste der Anhänge anzeigen (Anzahl: 1)
Hallöle...:P
Ich hab mal was merkwürdiges hier...: Beispielkonstrukt:
Delphi-Quellcode:
Ich habe bei allen diesen Konstrukten ein Speicherleck. :gruebel: Habe ich was übersehen? Die Zeile 321 enthällt den Aufruf zu DataModule.CreateData
function DataModule.CreateData: TDataSet;
begin Result := TNxQuery.Create(nil); Result.SQL.Text := 'Blubb'; Result.Open; end; ... procedure Anwendung.ReadData; var I: Integer; Data: TDataSet; begin Data := DataModule.CreateData; try while not Data.Eof do begin ...Lesen end; finally Data.Free; end; end; Oder veräppelt mich der MadExcept? :gruebel: Danke. |
AW: MemoryLeak in Nexus?
Ist TNexusQuery von dir? Das Original heißt meines Wissens TNxQuery.
|
AW: MemoryLeak in Nexus?
Moin Uwe...:P
Zitat:
Nachtrag: Änderung TNxQuery im Beispielkonstrukt. |
AW: MemoryLeak in Nexus?
Hallo,
ist das Beispiel vollständig? Ich frag nur, weil du den Constructor der TnxQuery aufrufst, aber freigeben tust du ein TDataSet. BTW ich verwende die NexusDB schon seit Version 1.14 aber Probleme mit MemoryLeaks hatte ich noch nicht. Thorsten macht hier wirklich einen sehr guten Job :thumb: |
AW: MemoryLeak in Nexus?
Liste der Anhänge anzeigen (Anzahl: 1)
Moin...:wink:
Zitat:
Nachtrag: Ich denke hier veräppelt mich der MadExcept. :roll: Ein Beenden mit ReportMemoryLeaksOnShutdown := True bringt kein Leak bis auf den UnicodeString den ich testweise eingefügt habe. |
AW: MemoryLeak in Nexus?
Sehe ich ganz anders. Du erzeugst eine Instanz der TnxQuery, deren Teilmenge von der Objekthierarchie ein TDataSet ist. Das ist richtig, darum funktioniert das auch. Aber bei der Freigabe wird lediglich der Destructor des TDataSet aufgerufen, und NICHT der Destructor der TnxQuery. Das muss leaken, was sonst. Die Speicheradresse ist die selbe, aber...deine Frage war ja "Habe ich was übersehen?".
|
AW: MemoryLeak in Nexus?
Das dürfte eigentlich kein Problem sein, da der Destruktor immer virtuell ist.
|
AW: MemoryLeak in Nexus?
Zitat:
|
AW: MemoryLeak in Nexus?
Danke an Alle...:wink:
Zitat:
Zitat:
|
AW: MemoryLeak in Nexus?
![]() Wenn das virtuelle Destroy (override) richtig aufräumt sollte es doch OK sein. Rollo |
Alle Zeitangaben in WEZ +1. Es ist jetzt 21:34 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