<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0"><channel><title><![CDATA[Speicherlecks &#x2F; Speicheroptimiereung - Wie geht man vor ?]]></title><description><![CDATA[<p>Hallo ich habe ein kleine Programm, welches eine oline Galerie samt Thumbnails anzeigt mit und zur verwaltung bereitstellt.</p>
<p>Mein Problem :<br />
Es entstehen Speicherlecks, so das bei vielen Bilder, häufigen Galerieauslesen der Speicher ausgeht. ich möchte natürlich, dass die nicht geschiet.</p>
<p>Prinzipell gilt die Faustregel, das alle nicht VCL variablen nach beenden einer Funktion(Variablen die in einer Funktion deklariert wurden) gelöscht/deren Speicher freigegeben wird.</p>
<p>Bei VCL Komponenten muss man mit &quot;delete&quot; dafür sorgen, dass deren Destructor aufgerufen wird und somit der Speicher freigegebn wird.</p>
<p>Ich denke ich habe das befolgt und soweit kann ich dort keinen offensichtlichen fehler entdecken.</p>
<p>Frage :</p>
<p>Hat jemand spezielle Tips/techniken mit denen man Effektiv festellen kann, wo Speicherlecks auftreten um diese zu lokalisieren ?<br />
Gibt es Punkte/Strukturen, bei denen oft vergessen wird, den Speicher freizugeben ? Praktisch typisch fehler ?</p>
<p>Vielen Dank</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/99984/speicherlecks-speicheroptimiereung-wie-geht-man-vor</link><generator>RSS for Node</generator><lastBuildDate>Mon, 13 Jul 2026 06:34:53 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/99984.rss" rel="self" type="application/rss+xml"/><pubDate>Wed, 02 Feb 2005 16:39:43 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Speicherlecks &#x2F; Speicheroptimiereung - Wie geht man vor ? on Wed, 02 Feb 2005 16:39:43 GMT]]></title><description><![CDATA[<p>Hallo ich habe ein kleine Programm, welches eine oline Galerie samt Thumbnails anzeigt mit und zur verwaltung bereitstellt.</p>
<p>Mein Problem :<br />
Es entstehen Speicherlecks, so das bei vielen Bilder, häufigen Galerieauslesen der Speicher ausgeht. ich möchte natürlich, dass die nicht geschiet.</p>
<p>Prinzipell gilt die Faustregel, das alle nicht VCL variablen nach beenden einer Funktion(Variablen die in einer Funktion deklariert wurden) gelöscht/deren Speicher freigegeben wird.</p>
<p>Bei VCL Komponenten muss man mit &quot;delete&quot; dafür sorgen, dass deren Destructor aufgerufen wird und somit der Speicher freigegebn wird.</p>
<p>Ich denke ich habe das befolgt und soweit kann ich dort keinen offensichtlichen fehler entdecken.</p>
<p>Frage :</p>
<p>Hat jemand spezielle Tips/techniken mit denen man Effektiv festellen kann, wo Speicherlecks auftreten um diese zu lokalisieren ?<br />
Gibt es Punkte/Strukturen, bei denen oft vergessen wird, den Speicher freizugeben ? Praktisch typisch fehler ?</p>
<p>Vielen Dank</p>
]]></description><link>https://www.c-plusplus.net/forum/post/713045</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/713045</guid><dc:creator><![CDATA[maYer]]></dc:creator><pubDate>Wed, 02 Feb 2005 16:39:43 GMT</pubDate></item><item><title><![CDATA[Reply to Speicherlecks &#x2F; Speicheroptimiereung - Wie geht man vor ? on Wed, 02 Feb 2005 16:46:42 GMT]]></title><description><![CDATA[<p>Hallo</p>
<p>CodeGuard<br />
(ist zwar nicht alles was es gibt, aber ein Anfang)</p>
<p>MfG<br />
Klaus</p>
]]></description><link>https://www.c-plusplus.net/forum/post/713054</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/713054</guid><dc:creator><![CDATA[KlausB]]></dc:creator><pubDate>Wed, 02 Feb 2005 16:46:42 GMT</pubDate></item><item><title><![CDATA[Reply to Speicherlecks &#x2F; Speicheroptimiereung - Wie geht man vor ? on Wed, 02 Feb 2005 17:03:45 GMT]]></title><description><![CDATA[<p>Hallo</p>
<p>und zusätzlich noch zur Laufzeit eine Logdatei erstellen, um einzelne Funktionsaufrufe (hier : new und delete) aufzuzeichnen.</p>
<p>bis bald<br />
akari</p>
]]></description><link>https://www.c-plusplus.net/forum/post/713065</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/713065</guid><dc:creator><![CDATA[akari]]></dc:creator><pubDate>Wed, 02 Feb 2005 17:03:45 GMT</pubDate></item><item><title><![CDATA[Reply to Speicherlecks &#x2F; Speicheroptimiereung - Wie geht man vor ? on Wed, 02 Feb 2005 17:07:17 GMT]]></title><description><![CDATA[<p>Hmm werd mir beides anschauen aber folgende Frage :</p>
<p>Ich denke besonders mit den Array hab ich ein Problem.</p>
<p>DynamicArray&lt;AnsiString&gt; myvar;</p>
<p>Diesen Array als property in einer Classe &quot;freigeben&quot;/zurücksetzen.<br />
Reich da ein<br />
myvar.Length = 0;</p>
<p>Wenn ich eine VCL klasse darin habe geh ich den array stück für stück durch und führe die destructoren aus.</p>
<p>btw. gibt es den CodGourd mit dem BC5++ pers ?</p>
<p>Danke</p>
]]></description><link>https://www.c-plusplus.net/forum/post/713068</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/713068</guid><dc:creator><![CDATA[maYer]]></dc:creator><pubDate>Wed, 02 Feb 2005 17:07:17 GMT</pubDate></item><item><title><![CDATA[Reply to Speicherlecks &#x2F; Speicheroptimiereung - Wie geht man vor ? on Wed, 02 Feb 2005 17:20:29 GMT]]></title><description><![CDATA[<p>@ Akari: wie erstellt man sinnvoll solche Logdateien????</p>
<p>Wäre für ein einfaches Beispiel mit erklärung vielleicht dankbar!</p>
]]></description><link>https://www.c-plusplus.net/forum/post/713076</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/713076</guid><dc:creator><![CDATA[Speicherleg?]]></dc:creator><pubDate>Wed, 02 Feb 2005 17:20:29 GMT</pubDate></item><item><title><![CDATA[Reply to Speicherlecks &#x2F; Speicheroptimiereung - Wie geht man vor ? on Wed, 02 Feb 2005 17:38:31 GMT]]></title><description><![CDATA[<p>Speicherleg? schrieb:</p>
<blockquote>
<p>@ Akari: wie erstellt man sinnvoll solche Logdateien????</p>
<p>Wäre für ein einfaches Beispiel mit erklärung vielleicht dankbar!</p>
</blockquote>
<p>Dazu nimmst du am einfachsten TFileStream.<br />
Damit öffnest du beim Start deines Programms mit TFileStream eine Datei zum Schreiben. Bei jedem dir wichtigen Ereigniss schreibst du die Nachricht im Schema</p>
<pre><code>aktuelle Systemzeit &lt;Tab&gt; Nachricht &lt;Zeilenende&gt;
</code></pre>
<p>Am ende des Pogramms löscht du das Stream-Objekt.</p>
<p>Wenn du dann ein VCL-Control erstellst, schreibst du eine Nachricht :</p>
<pre><code>Konstruktor für &lt;Control-Name&gt;,&lt;Control-Owner&gt;
</code></pre>
<p>beim Löschen eines Controls</p>
<pre><code>Destruktor für &lt;Control-Name&gt;,&lt;Control-Owner&gt;
</code></pre>
<p>dann weißt du genau, welche Controls du nicht löscht.<br />
Es gibt dann noch die Möglichkeit, new und delete zu überladen, um dort direkt den Ablauf zu loggen. Dazu gibt es irgendwo einen Thread im C++ Forum</p>
<p>bis bald<br />
akari</p>
]]></description><link>https://www.c-plusplus.net/forum/post/713091</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/713091</guid><dc:creator><![CDATA[akari]]></dc:creator><pubDate>Wed, 02 Feb 2005 17:38:31 GMT</pubDate></item><item><title><![CDATA[Reply to Speicherlecks &#x2F; Speicheroptimiereung - Wie geht man vor ? on Thu, 03 Feb 2005 08:54:35 GMT]]></title><description><![CDATA[<p>maYer schrieb:</p>
<blockquote>
<p>DynamicArray&lt;AnsiString&gt; myvar;</p>
</blockquote>
<p>dafür gibt es <strong>TStringList</strong>!</p>
<p>maYer schrieb:</p>
<blockquote>
<p>Wenn ich eine VCL klasse darin habe geh ich den array stück für stück durch und führe die destructoren aus.</p>
</blockquote>
<p>dafür würde ich <strong>TList</strong> verwenden und nur die zeiger auf die objekte speichern.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/713457</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/713457</guid><dc:creator><![CDATA[Sunday]]></dc:creator><pubDate>Thu, 03 Feb 2005 08:54:35 GMT</pubDate></item><item><title><![CDATA[Reply to Speicherlecks &#x2F; Speicheroptimiereung - Wie geht man vor ? on Thu, 03 Feb 2005 08:47:20 GMT]]></title><description><![CDATA[<p>Es gibt desweiteren noch TObjectList und TComponentList. Die hab ich zwar noch nie verwendet, in der Hilfe steht aber, dass diese Listen sich auch um den Speicher ihrer Objekte kümmern.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/713459</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/713459</guid><dc:creator><![CDATA[Braunstein]]></dc:creator><pubDate>Thu, 03 Feb 2005 08:47:20 GMT</pubDate></item><item><title><![CDATA[Reply to Speicherlecks &#x2F; Speicheroptimiereung - Wie geht man vor ? on Thu, 03 Feb 2005 09:19:12 GMT]]></title><description><![CDATA[<p>ich verwende <a href="http://www.automatedqa.com/products/memproof/" rel="nofollow">memproof</a>.</p>
<p>das zeigt dir schön wieviel speicher reserviert wurde und wieviel davon wieder freigegeben wird. in der vcl sind auch einige lecks drin. wenn du das ganze im debugmodus testet, dann bekommst du die objekte angezeigt, bei denen es klemmt.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/713492</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/713492</guid><dc:creator><![CDATA[Sunday]]></dc:creator><pubDate>Thu, 03 Feb 2005 09:19:12 GMT</pubDate></item><item><title><![CDATA[Reply to Speicherlecks &#x2F; Speicheroptimiereung - Wie geht man vor ? on Thu, 03 Feb 2005 09:28:09 GMT]]></title><description><![CDATA[<p>Sunday schrieb:</p>
<blockquote>
<p>ich verwende <a href="http://www.automatedqa.com/products/memproof/" rel="nofollow">memproof</a>.</p>
</blockquote>
<p>Funktioniert das auch mit BCB6?</p>
<p>Gruß,</p>
<p>Alexander</p>
]]></description><link>https://www.c-plusplus.net/forum/post/713504</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/713504</guid><dc:creator><![CDATA[Alexander Kempf]]></dc:creator><pubDate>Thu, 03 Feb 2005 09:28:09 GMT</pubDate></item><item><title><![CDATA[Reply to Speicherlecks &#x2F; Speicheroptimiereung - Wie geht man vor ? on Thu, 03 Feb 2005 09:39:16 GMT]]></title><description><![CDATA[<p>ausprobieren! bei mir schon.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/713514</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/713514</guid><dc:creator><![CDATA[Sunday]]></dc:creator><pubDate>Thu, 03 Feb 2005 09:39:16 GMT</pubDate></item><item><title><![CDATA[Reply to Speicherlecks &#x2F; Speicheroptimiereung - Wie geht man vor ? on Thu, 03 Feb 2005 13:57:01 GMT]]></title><description><![CDATA[<p>Alles klar,</p>
<p>also grundsätzlich keine DynamicArray verwenden?<br />
Ich meine es ist bei mir oft nicht zu ersetzen, weil die Array Teilweise 3 Dimensionen haben.</p>
<p>Die Fehler in meinem Fall hab ich schon fast alle gefunden. Zum größten teil VCL-Kompos aus Properties von selbstgeschriebenen Klassen, die im DEstruktor nicht gelöscht wurden und solche Dinge. Da sollte man aufpassen.</p>
<p>Werd mir alles einemal anschauen, vielen Dank.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/713713</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/713713</guid><dc:creator><![CDATA[maYer]]></dc:creator><pubDate>Thu, 03 Feb 2005 13:57:01 GMT</pubDate></item><item><title><![CDATA[Reply to Speicherlecks &#x2F; Speicheroptimiereung - Wie geht man vor ? on Fri, 04 Feb 2005 07:36:48 GMT]]></title><description><![CDATA[<p><strong>DynamicArray</strong> ist lahm. Wozu braucht man ein dynamisches dreidimensionales Array?</p>
<p>Fuer solche Sachen schreib ich mir immer ne eigene Klasse.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/714259</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/714259</guid><dc:creator><![CDATA[Sunday]]></dc:creator><pubDate>Fri, 04 Feb 2005 07:36:48 GMT</pubDate></item><item><title><![CDATA[Reply to Speicherlecks &#x2F; Speicheroptimiereung - Wie geht man vor ? on Fri, 04 Feb 2005 08:44:15 GMT]]></title><description><![CDATA[<p>Klar, kann ich dafür eine Struktur schreiben, aber bei simplen sachen lohnt das nicht immer.<br />
Wenn es jedoch speicherlecks gibt, werde ich es möglichst unterlassen.</p>
<p>Danke euch</p>
]]></description><link>https://www.c-plusplus.net/forum/post/714287</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/714287</guid><dc:creator><![CDATA[maYer]]></dc:creator><pubDate>Fri, 04 Feb 2005 08:44:15 GMT</pubDate></item></channel></rss>