![]() |
Indy 9 Speicherleck oder falsches Handling?
Hallo,
wie im Titel schon erwähnt, habe ich ein Memory-Leak Problem in einer Anwendung und ich bin mir nicht sicher, ob es and den Indy's oder an mir liegt. Folgendes tue ich in meiner Anwendung: Mich mit einem Host connecten...
Delphi-Quellcode:
...dieser Schickt dann auf den Port beliebig lange XML StringsTCPClient.Host := MeinHost; TCPClient.Port := MeinPort; TCPClient.Connect(10); und ich lese diesen String mit CurrentReadBuffer aus
Delphi-Quellcode:
Im Taskmanager ist ganz klar zu sehen, dass der Speicher der Anwendung stetig anwächst.
XMLStr := TCPClient.CurrentReadBuffer;
Ich habe bislang zwar noch kein Profiler-Tool eingesetzt, bin mir aber sehr sicher, dass das Problem im TCPClient zu suchen ist, bzw. im Umgang damit. Wie ist das mit dem Indy-Buffer? Ich hätte gedacht, der wird ständig "neu" und nicht einfach "weiter" beschrieben. Kennt sich Jemand aus? Für Hilfe wäre ich sehr dankbar. Grüße Sascha |
Re: Indy 9 Speicherleck oder falsches Handling?
Verwende doch mal FastMM, dann kannst du auch aussagekräftigere Hinweise liefern.
|
Re: Indy 9 Speicherleck oder falsches Handling?
Ich habe befürchtet, dass diese Antwort kommt. ^^
Werde ich tun, aber ich bin mir sicher, dass es an der IdTCPClient-Buffer-Verabeitung liegt. Ich weiß eben nicht, ob ich's so richtig mache. |
Re: Indy 9 Speicherleck oder falsches Handling?
FastMM herunterladen und das FastMM-Archiv entpacken (in einen Ordner),
diesen dann in das Programmverzeichnis kopieren und die enthaltenen Pas-Dateien deinem Projekt hinzufügen. Danach must du noch die Reihenfolge der Units in der Uses-Klausel in der Projektdatei ändern (Die beiden FastMM-Dateien müssen als erstes aufgeführt werden). Was ist da jetzt so schlimm dran? |
Re: Indy 9 Speicherleck oder falsches Handling?
Hi,
wie vermutet, FastMM findet quasi nichts. Das heißt, vier Memleaks sind schon vorhanden, aber das ist nicht das Problem. Hier gibt es ein paar Objekte die nicht mehr freigegeben werden, aber das ist im Byte -Bereich. Beim eigentlichen Problem geht um einige MB's. Ich tippe dann mal auf das Handling mit der IdTCPClient -Komponente. Irgendwas mache ich noch nicht richtig. Gruß Sascha |
Re: Indy 9 Speicherleck oder falsches Handling?
Ps.: Was soll eigentlich im FullDebugMode bei FastMM passieren?
Ich habe das aktiviert, DLL ist auch da, mein Programm startet auch, aber nach Beenden hängt's. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 02:13 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