<?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[Garbage - Beispiele?]]></title><description><![CDATA[<p>Hallo Leute,</p>
<p>da meine schöne Server-Applikation <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f603.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--grinning_face_with_big_eyes"
      title=":D"
      alt="😃"
    /> mit 3,4 MB (Arbeitsspeicher/Ressourcen) anfängt und während der Laufzeit immer mehr zunimmt, gehe ich mal davon aus, dass es sich um Garbage handelt. Und C++ hat ja keinen eingebauten Garbage-Collector.</p>
<p>Es gibt natürlich auch libraries für dieses Problem. Aber ich möchte kein Problem überdecken, sondern vom Grundlegenden an beseitigen.</p>
<p>Jetzt wollte ich fragen, ob jemand bei der C++ OOP Beispiele kennt, die zu solch einem Problem führen können.</p>
<p>Es wird zu Anfang(vor der &quot;Serverschleife&quot;) zwar extra Speicher allokiert, dieser aber auch am Ende wieder freigegeben. Daran kann es nicht liegen.</p>
<p>Danke</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/300239/garbage-beispiele</link><generator>RSS for Node</generator><lastBuildDate>Wed, 12 Aug 2026 22:00:13 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/300239.rss" rel="self" type="application/rss+xml"/><pubDate>Tue, 28 Feb 2012 15:05:25 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Garbage - Beispiele? on Tue, 28 Feb 2012 15:07:12 GMT]]></title><description><![CDATA[<p>Hallo Leute,</p>
<p>da meine schöne Server-Applikation <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f603.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--grinning_face_with_big_eyes"
      title=":D"
      alt="😃"
    /> mit 3,4 MB (Arbeitsspeicher/Ressourcen) anfängt und während der Laufzeit immer mehr zunimmt, gehe ich mal davon aus, dass es sich um Garbage handelt. Und C++ hat ja keinen eingebauten Garbage-Collector.</p>
<p>Es gibt natürlich auch libraries für dieses Problem. Aber ich möchte kein Problem überdecken, sondern vom Grundlegenden an beseitigen.</p>
<p>Jetzt wollte ich fragen, ob jemand bei der C++ OOP Beispiele kennt, die zu solch einem Problem führen können.</p>
<p>Es wird zu Anfang(vor der &quot;Serverschleife&quot;) zwar extra Speicher allokiert, dieser aber auch am Ende wieder freigegeben. Daran kann es nicht liegen.</p>
<p>Danke</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2186628</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2186628</guid><dc:creator><![CDATA[zuckerlie]]></dc:creator><pubDate>Tue, 28 Feb 2012 15:07:12 GMT</pubDate></item><item><title><![CDATA[Reply to Garbage - Beispiele? on Tue, 28 Feb 2012 15:08:43 GMT]]></title><description><![CDATA[<pre><code class="language-cpp">class A {
private:
    int *x;
    int *y;
public:
    A() { x = new int; y = new int; }
    ~A() { delete x; delete y; }
};
</code></pre>
<p>Stelle dir vor, das zweite new wirft eine Exception. Was passiert mit dem Speicher von *x ?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2186632</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2186632</guid><dc:creator><![CDATA[pyhax]]></dc:creator><pubDate>Tue, 28 Feb 2012 15:08:43 GMT</pubDate></item><item><title><![CDATA[Reply to Garbage - Beispiele? on Tue, 28 Feb 2012 15:09:25 GMT]]></title><description><![CDATA[<p>Meh, schlechtes Beispiel. delete oder Freigaefunktion vergessen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2186633</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2186633</guid><dc:creator><![CDATA[314159265358979]]></dc:creator><pubDate>Tue, 28 Feb 2012 15:09:25 GMT</pubDate></item><item><title><![CDATA[Reply to Garbage - Beispiele? on Tue, 28 Feb 2012 15:10:51 GMT]]></title><description><![CDATA[<p>zuckerlie schrieb:</p>
<blockquote>
<p>Hallo Leute,</p>
<p>da meine schöne Server-Applikation <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f603.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--grinning_face_with_big_eyes"
      title=":D"
      alt="😃"
    /> mit 3,4 MB (Arbeitsspeicher/Ressourcen) anfängt und während der Laufzeit immer mehr zunimmt, gehe ich mal davon aus, dass es sich um Garbage handelt. Und C++ hat ja keinen eingebauten Garbage-Collector.</p>
<p>Es gibt natürlich auch libraries für dieses Problem. Aber ich möchte kein Problem überdecken, sondern vom Grundlegenden an beseitigen.</p>
<p>Jetzt wollte ich fragen, ob jemand bei der C++ OOP Beispiele kennt, die zu solch einem Problem führen können.</p>
<p>Es wird zu Anfang(vor der &quot;Serverschleife&quot;) zwar extra Speicher allokiert, dieser aber auch am Ende wieder freigegeben. Daran kann es nicht liegen.</p>
<p>Danke</p>
</blockquote>
<p>Für alle manuell freizugebenden Ressourcen <a href="http://en.wikibooks.org/wiki/More_C%2B%2B_Idioms/Resource_Acquisition_Is_Initialization" rel="nofollow">RAII</a> benutzen, und dabei für jeden Ressourcentypen eine Klasse schreiben, die je genau eine Instanz der jeweiligen Ressource verwaltet. Das reduziert die Wahrscheinlichkeit für solche Lecks auf nahezu 0%.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2186634</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2186634</guid><dc:creator><![CDATA[Tachyon]]></dc:creator><pubDate>Tue, 28 Feb 2012 15:10:51 GMT</pubDate></item><item><title><![CDATA[Reply to Garbage - Beispiele? on Tue, 28 Feb 2012 15:10:53 GMT]]></title><description><![CDATA[<p>lass mal valgrind durchlaufen. Der wird dir schon deutlich mitteilen, wo schlecht programmiert wurde.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2186635</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2186635</guid><dc:creator><![CDATA[otze]]></dc:creator><pubDate>Tue, 28 Feb 2012 15:10:53 GMT</pubDate></item><item><title><![CDATA[Reply to Garbage - Beispiele? on Tue, 28 Feb 2012 15:13:15 GMT]]></title><description><![CDATA[<p>Ich glaube, dass diese Exception zu einem Abbruch führt und der Speicher von *x einfach im Raum stehen bleibt und somit nicht gelöscht wird.Speicherleck?!</p>
<p>Aber ich habe eigentlich selbst keinen manuellen allokierten Speicher, bis auf 2,3 mal - diese werden aber ordnungsgemäß gelöscht.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2186637</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2186637</guid><dc:creator><![CDATA[zuckerlie]]></dc:creator><pubDate>Tue, 28 Feb 2012 15:13:15 GMT</pubDate></item><item><title><![CDATA[Reply to Garbage - Beispiele? on Tue, 28 Feb 2012 15:15:12 GMT]]></title><description><![CDATA[<p>314159265358979 schrieb:</p>
<blockquote>
<p>Meh, schlechtes Beispiel. delete oder Freigaefunktion vergessen.</p>
</blockquote>
<p>Wo habe ich da delete vergessen?</p>
<p>zuckerlie schrieb:</p>
<blockquote>
<p>Aber ich habe eigentlich selbst keinen manuellen allokierten Speicher, bis auf 2,3 mal - diese werden aber ordnungsgemäß gelöscht</p>
</blockquote>
<p>Was verstehst du den unter Garbage? Ich hätte da an Speicherleck gedacht.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2186638</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2186638</guid><dc:creator><![CDATA[pyhax]]></dc:creator><pubDate>Tue, 28 Feb 2012 15:15:12 GMT</pubDate></item><item><title><![CDATA[Reply to Garbage - Beispiele? on Tue, 28 Feb 2012 15:14:40 GMT]]></title><description><![CDATA[<p>otze schrieb:</p>
<blockquote>
<p>lass mal valgrind durchlaufen. Der wird dir schon deutlich mitteilen, wo schlecht programmiert wurde.</p>
</blockquote>
<p>Jo, valgrind würde ich auch nehmen.</p>
<p><a class="plugin-mentions-user plugin-mentions-a" href="https://www.c-plusplus.net/forum/uid/2311">@TS</a><br />
Nimm valgrind</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2186640</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2186640</guid><dc:creator><![CDATA[valgrind]]></dc:creator><pubDate>Tue, 28 Feb 2012 15:14:40 GMT</pubDate></item><item><title><![CDATA[Reply to Garbage - Beispiele? on Tue, 28 Feb 2012 15:16:01 GMT]]></title><description><![CDATA[<p>pyhax schrieb:</p>
<blockquote>
<p>Wo habe ich da delete vergessen?</p>
</blockquote>
<p>Der TE hat evtl. ein delete oder eine Freigabefunktion vergessen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2186642</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2186642</guid><dc:creator><![CDATA[314159265358979]]></dc:creator><pubDate>Tue, 28 Feb 2012 15:16:01 GMT</pubDate></item><item><title><![CDATA[Reply to Garbage - Beispiele? on Tue, 28 Feb 2012 15:45:36 GMT]]></title><description><![CDATA[<p>zuckerlie schrieb:</p>
<blockquote>
<p>Server-Applikation</p>
</blockquote>
<p>Mal aus Interesse: Was macht und wie funktioniert diese Anwendung in etwa? Vielleicht macht dein System da ein paar Optimierungen und da bleibt Speicher hängen oder so.</p>
<p>(Wenn du überall RAII benutzt werden es wohl keine Speicherlecks sein. Also: Du hast nirgends ein new stehen? (Außer vielleicht in einer selbst geschriebenen make_unique Funktion. ;))</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2186657</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2186657</guid><dc:creator><![CDATA[cooky451]]></dc:creator><pubDate>Tue, 28 Feb 2012 15:45:36 GMT</pubDate></item><item><title><![CDATA[Reply to Garbage - Beispiele? on Tue, 28 Feb 2012 15:55:05 GMT]]></title><description><![CDATA[<p>Vielleicht beendet sich der Thread (nutzt du Threads?), der den Client bedient, aus irgend einem Grund nicht, nachdem der Client die Verbindung geschlossen hat? Irgendein blockierender Systemcall oder so.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2186668</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2186668</guid><dc:creator><![CDATA[pyhax]]></dc:creator><pubDate>Tue, 28 Feb 2012 15:55:05 GMT</pubDate></item></channel></rss>