Forums Neueste Beiträge
 

COM: Speicherfreigabe

25/04/2008 - 12:36 von Martin Poggensee | Report spam
Ich suche nach einem Speicher-Leck in einer komplexen Applikation.
Es werden sehr viele (!!!) COM-Objekte erzeugt, die natürlich den
Speicherbedarf der Anwendung sehr schnell in die Höhe treiben. Eigentlich
gibt es für die nicht mehr benötigten Objekte auch eine Methode, mit der
Speicher wieder freigegeben wird (Aufruf von Release()). Diese Methode wird
auch immer wieder aufgerufen, doch es ist nicht festzustellen, daß der
Speicherbedarf danach geringer wird. Da die Objekte bei jeder Benutzeraktion
in einem Dialog neu erzeugt werden, die alten Objekte jedoch anscheinend
nicht wieder ihren Speicher frei geben, kommt das System schnell an seine
Grenzen und wird unzumutbar langsam. Hat vielleicht jemand einenTip, woran
das liegen kann ? Zur Information: die COM-Objekte werden in einer DLL
erzeugt, die als Benutzeranpassung an eine exe-Datei angebunden wird.
 

Lesen sie die antworten

#1 Thomas Scheidegger
25/04/2008 - 16:27 | Warnen spam
Hallo Martin

vorab,
dies ist eine .NET Newsgroup für managed C++/CLI Code.
(managed Code ist immun gegen solche Leaks!)

Für klassisches C++ gilt weiterhin:
microsoft.public.de.vc


die COM-Objekte werden in einer DLL erzeugt



Source der DLL vorhanden?

Speicher-Leck in einer komplexen Applikation.
Es werden sehr viele (!!!) COM-Objekte erzeugt, die natürlich den
Speicherbedarf der Anwendung sehr schnell in die Höhe treiben. Eigentlich
gibt es für die nicht mehr benötigten Objekte auch eine Methode, mit der
Speicher wieder freigegeben wird (Aufruf von Release()).



es stellt sich die Frage,
ob der Speicher alleine durch die Anzahl nicht freigegebener COM-Objekte
wàchst,
oder ob die COMponenten intern selber auch noch Leaks haben!

Für AddRef/Release, einige unverb. Google Resultate :
<URL:http://blogs.msdn.com/saraford/arch...14385.aspx
<URL:http://www.ddj.com/development-tools/184404526
<URL:http://blogs.msdn.com/greggm/archiv...s.aspx>
<URL:http://msdn2.microsoft.com/en-us/library/sycfy8ec(VS.80).aspx




Thomas Scheidegger - 'NETMaster'
http://www.cetus-links.org/oo_dotnet.html - http://dnetmaster.net/

Ähnliche fragen