<?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[Manuelle Speicherfreigaben bei Programmende]]></title><description><![CDATA[<p>Hallo Allerseits!</p>
<p>Mir wurde beigebracht, bei Programmende dafür zu sorgen, dass jeder, vom Prozess reservierter Speicher, manuell wieder freigegeben werden muss.</p>
<p>Nur frage ich mich warum dies weiterhin so propagiert wird.<br />
Denn jedes moderne Betriebssystem macht doch den Heap des Prozesses bei Beendigung sowieso 100%ig zu Nichte.<br />
Warum also noch so einen Aufwand betreiben?</p>
<p>Danke für eure Aufklärung!</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/180956/manuelle-speicherfreigaben-bei-programmende</link><generator>RSS for Node</generator><lastBuildDate>Tue, 22 Sep 2026 01:59:40 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/180956.rss" rel="self" type="application/rss+xml"/><pubDate>Tue, 08 May 2007 15:10:10 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Manuelle Speicherfreigaben bei Programmende on Tue, 08 May 2007 15:10:10 GMT]]></title><description><![CDATA[<p>Hallo Allerseits!</p>
<p>Mir wurde beigebracht, bei Programmende dafür zu sorgen, dass jeder, vom Prozess reservierter Speicher, manuell wieder freigegeben werden muss.</p>
<p>Nur frage ich mich warum dies weiterhin so propagiert wird.<br />
Denn jedes moderne Betriebssystem macht doch den Heap des Prozesses bei Beendigung sowieso 100%ig zu Nichte.<br />
Warum also noch so einen Aufwand betreiben?</p>
<p>Danke für eure Aufklärung!</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1280983</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1280983</guid><dc:creator><![CDATA[Räuber]]></dc:creator><pubDate>Tue, 08 May 2007 15:10:10 GMT</pubDate></item><item><title><![CDATA[Reply to Manuelle Speicherfreigaben bei Programmende on Tue, 08 May 2007 15:37:13 GMT]]></title><description><![CDATA[<p>Hi,</p>
<p>wenn sichergestellt ist, dass es sich wirklich um das Ende des Programms handelt, stimmt das schon ... allerdings weiß man meistens nur, dass die aktuelle Funktion oder der Lebenszyklus des aktuellen Objekts verlassen wird.<br />
Und wenn das nutzende Programm eine Serveranwendung ist, die nur alle 6 Monate mal runtergefahren wird, passt das schon nicht mehr.</p>
<p>Ich sage mal so: Nur in den allerseltensten Fällen werden Ressourcen im main() reserviert und dort freigegeben und nur da wäre das Weglassen von deletes halbwegs zuverlässig.</p>
<p>Ein ganz anderes Problem: Wer weiß, welche Ressourcen im Dtor noch so aufgeräumt werden ? Da könnten ganz schnell unangenehme Seiteneffekte auftreten. Fachliche wie ein DB-Rollback, weil im DTor ein Auto-Commit implementiert ist. Technische wie die Blockade einer Netzwerkressource, weil sie im System einen Timeout von 10 Minuten konfiguriert hat.....</p>
<p>Langer Rede kurzer Sinn: Einfach sauber bleiben ! Kostet nicht viel und spart viel Ärger.</p>
<p>Gruß,</p>
<p>Simon2.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1280992</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1280992</guid><dc:creator><![CDATA[Simon2]]></dc:creator><pubDate>Tue, 08 May 2007 15:37:13 GMT</pubDate></item><item><title><![CDATA[Reply to Manuelle Speicherfreigaben bei Programmende on Tue, 08 May 2007 15:52:25 GMT]]></title><description><![CDATA[<p>Schon klar, dass wenn benötigt, z.B. die Auflösung eines Objekts aus funktionellen Gründen implementiert sein muß.</p>
<p>Mir geht es aber wirklich nur um die Frage ob es (heutzutage) irgend einen Grund geben könnte, Speicher explizit vor exit() freizugeben.<br />
In dem (Win95-Era) Projekt woran ich gerade arbeite werden vor Programmende extra Listen usw. durchgegrast und deren Speicher freigegeben - und das wirklich nur der Speicherfreigabe wegen.</p>
<p>Daher die Frage ob es irgend einen Sinn aus Sicht der Speicherverwaltung noch dafür gibt.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1281013</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1281013</guid><dc:creator><![CDATA[Räuber]]></dc:creator><pubDate>Tue, 08 May 2007 15:52:25 GMT</pubDate></item><item><title><![CDATA[Reply to Manuelle Speicherfreigaben bei Programmende on Tue, 08 May 2007 16:15:00 GMT]]></title><description><![CDATA[<p>Aus ethisch-moralischen Gründen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1281029</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1281029</guid><dc:creator><![CDATA[Bashar]]></dc:creator><pubDate>Tue, 08 May 2007 16:15:00 GMT</pubDate></item><item><title><![CDATA[Reply to Manuelle Speicherfreigaben bei Programmende on Tue, 08 May 2007 16:24:59 GMT]]></title><description><![CDATA[<p>Räuber schrieb:</p>
<blockquote>
<p>Daher die Frage ob es irgend einen Sinn aus Sicht der Speicherverwaltung noch dafür gibt.</p>
</blockquote>
<p>Ist ohne Sinn!</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1281038</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1281038</guid><dc:creator><![CDATA[Bratwurst 2]]></dc:creator><pubDate>Tue, 08 May 2007 16:24:59 GMT</pubDate></item><item><title><![CDATA[Reply to Manuelle Speicherfreigaben bei Programmende on Tue, 08 May 2007 16:35:07 GMT]]></title><description><![CDATA[<p>Man räumt nunmal selbst auf, was man dreckig gemacht hat, Basta. Alles andere ist unsauber.</p>
<p>Ich schmeiße doch meine Kaugummipapiere auch nicht auf die Straße, obwohl ich genau weiß, dass die Stadtreinigung hier sowieso sauber macht. Gut, schlechter Vergleich.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1281041</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1281041</guid><dc:creator><![CDATA[Konrad Rudolph]]></dc:creator><pubDate>Tue, 08 May 2007 16:35:07 GMT</pubDate></item><item><title><![CDATA[Reply to Manuelle Speicherfreigaben bei Programmende on Tue, 08 May 2007 17:11:45 GMT]]></title><description><![CDATA[<p>Konrad Rudolph schrieb:</p>
<blockquote>
<p>Ich schmeiße doch meine Kaugummipapiere auch nicht auf die Straße, obwohl ich genau weiß, dass die Stadtreinigung hier sowieso sauber macht. Gut, schlechter Vergleich.</p>
</blockquote>
<p>Ja. Das OS tut ja nicht das, was du ohnehin machen würdest. Vor Programmende aufzuräumen ist ungefähr vergleichbar damit, nochmal das Treppenhaus zu fegen bevor die Abrißbirne einschlägt. OK, meine Tante würde das wahrscheinlich machen <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f642.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--slightly_smiling_face"
      title=":)"
      alt="🙂"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1281061</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1281061</guid><dc:creator><![CDATA[Bashar]]></dc:creator><pubDate>Tue, 08 May 2007 17:11:45 GMT</pubDate></item><item><title><![CDATA[Reply to Manuelle Speicherfreigaben bei Programmende on Tue, 08 May 2007 17:16:54 GMT]]></title><description><![CDATA[<p>Bashar schrieb:</p>
<blockquote>
<p>Vor Programmende aufzuräumen ist ungefähr vergleichbar damit, nochmal das Treppenhaus zu fegen bevor die Abrißbirne einschlägt.</p>
</blockquote>
<p>den muss ich mir merken <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f44d.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--thumbs_up"
      title=":+1:"
      alt="👍"
    /> <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f642.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--slightly_smiling_face"
      title=":)"
      alt="🙂"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1281063</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1281063</guid><dc:creator><![CDATA[pale dog]]></dc:creator><pubDate>Tue, 08 May 2007 17:16:54 GMT</pubDate></item><item><title><![CDATA[Reply to Manuelle Speicherfreigaben bei Programmende on Tue, 08 May 2007 17:39:28 GMT]]></title><description><![CDATA[<p>Bashar schrieb:</p>
<blockquote>
<p>Konrad Rudolph schrieb:</p>
<blockquote>
<p>Ich schmeiße doch meine Kaugummipapiere auch nicht auf die Straße, obwohl ich genau weiß, dass die Stadtreinigung hier sowieso sauber macht. Gut, schlechter Vergleich.</p>
</blockquote>
<p>Ja. Das OS tut ja nicht das, was du ohnehin machen würdest. Vor Programmende aufzuräumen ist ungefähr vergleichbar damit, nochmal das Treppenhaus zu fegen bevor die Abrißbirne einschlägt. OK, meine Tante würde das wahrscheinlich machen <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f642.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--slightly_smiling_face"
      title=":)"
      alt="🙂"
    /></p>
</blockquote>
<p>Da würde ich dann aber auch zum stylishen Programmende mittels</p>
<pre><code class="language-cpp">throw;
</code></pre>
<p>raten. <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="😃"
    /></p>
<p>*SCNR*</p>
<p>Grüsse</p>
<p>*this</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1281085</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1281085</guid><dc:creator><![CDATA[Gast++]]></dc:creator><pubDate>Tue, 08 May 2007 17:39:28 GMT</pubDate></item><item><title><![CDATA[Reply to Manuelle Speicherfreigaben bei Programmende on Tue, 08 May 2007 17:43:22 GMT]]></title><description><![CDATA[<p>Gast++ schrieb:</p>
<blockquote>
<p>Da würde ich dann aber auch zum stylishen Programmende mittels</p>
<pre><code class="language-cpp">throw;
</code></pre>
<p>raten. <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="😃"
    /></p>
</blockquote>
<p>wie wärs mit:</p>
<pre><code>exit(0);
</code></pre>
<p>oder, noch lustiger:</p>
<pre><code>asm hlt;
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1281089</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1281089</guid><dc:creator><![CDATA[pale dog]]></dc:creator><pubDate>Tue, 08 May 2007 17:43:22 GMT</pubDate></item><item><title><![CDATA[Reply to Manuelle Speicherfreigaben bei Programmende on Tue, 08 May 2007 17:49:27 GMT]]></title><description><![CDATA[<p>pale dog schrieb:</p>
<blockquote>
<p>Gast++ schrieb:</p>
<blockquote>
<p>Da würde ich dann aber auch zum stylishen Programmende mittels</p>
<pre><code class="language-cpp">throw;
</code></pre>
<p>raten. <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="😃"
    /></p>
</blockquote>
<p>wie wärs mit:</p>
<pre><code>exit(0);
</code></pre>
<p>oder, noch lustiger:</p>
<pre><code>asm hlt;
</code></pre>
</blockquote>
<p><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="😃"
    /> Was sind denn das für Stilblüten? <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="😃"
    /><br />
<strong>SO</strong> macht man das:</p>
<pre><code class="language-cpp">__asm {
    mov cr0,42
}
// This is how REAL programmers do it!
</code></pre>
<p><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="😃"
    /></p>
<p>Grüsse</p>
<p>*this</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1281094</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1281094</guid><dc:creator><![CDATA[Gast++]]></dc:creator><pubDate>Tue, 08 May 2007 17:49:27 GMT</pubDate></item><item><title><![CDATA[Reply to Manuelle Speicherfreigaben bei Programmende on Tue, 08 May 2007 17:53:49 GMT]]></title><description><![CDATA[<p>Gast++ schrieb:</p>
<blockquote>
<p><strong>SO</strong> macht man das:</p>
</blockquote>
<p><strong>DAS</strong> ist aber nicht portabel :p</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1281100</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1281100</guid><dc:creator><![CDATA[pale dog]]></dc:creator><pubDate>Tue, 08 May 2007 17:53:49 GMT</pubDate></item><item><title><![CDATA[Reply to Manuelle Speicherfreigaben bei Programmende on Tue, 08 May 2007 18:50:21 GMT]]></title><description><![CDATA[<p>Räuber schrieb:</p>
<blockquote>
<p>Schon klar, dass wenn benötigt, z.B. die Auflösung eines Objekts aus funktionellen Gründen implementiert sein muß....</p>
</blockquote>
<p>Das bedeutet also, dass Du Dir genau die Implementierung aller direkt und indirekt genutzten Klassen ansehen möchtest, in der Hoffnung, festzustellen, ob sie &quot;funktionelle Auflösungsgründe&quot; haben ... und Dir dann ein paar deletes zu sparen ?<br />
Wäre mir irgendwie zu lästig und ich sehe da wenig Vorteil drin (mal ganz davon abgesehen, dass das in der nächsten Version dieser Objekt schon anders sein kann).</p>
<p>Denk dran: Ohne delete kein Dtor von Heapobjekten und ohne return oder gefangene Exception kein Dtor von Stackobjekten .... irgendwie sehe ich nicht, wo das als Standardverhalten gewinnbringend wäre. Das &quot;Scopeverhalten&quot; hilft mir in der Designphse, mir gründlich Gedanken über Ownership und Abhängigkeiten zu machen - Gedanken, die sich im Gesamtdesign bezahlt machen (nicht nur durch Aufruf der Dtoren).</p>
<p>Gruß,</p>
<p>Simon2.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1281155</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1281155</guid><dc:creator><![CDATA[Simon2]]></dc:creator><pubDate>Tue, 08 May 2007 18:50:21 GMT</pubDate></item><item><title><![CDATA[Reply to Manuelle Speicherfreigaben bei Programmende on Tue, 08 May 2007 19:28:16 GMT]]></title><description><![CDATA[<p>pale dog schrieb:</p>
<blockquote>
<p>Gast++ schrieb:</p>
<blockquote>
<p><strong>SO</strong> macht man das:</p>
</blockquote>
<p><strong>DAS</strong> ist aber nicht portabel :p</p>
</blockquote>
<p>LOL <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f44d.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--thumbs_up"
      title=":+1:"
      alt="👍"
    /></p>
<p>Einen Bolzen hab ich noch:<br />
So konnte man früher mit dem gcc mal ekegant (und portabel) die Tür schliessen:</p>
<pre><code class="language-cpp">class A {
public:
	virtual void foo() = 0;
	A() {foo();};
};

class B : public A {
public:
	virtual void foo() {};
	B() {};
};

B b;
</code></pre>
<p>Ja, da guckst Du: &quot;Pure virtual function call&quot; - so ne Exception kriegt nicht jeder hin! <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="😃"
    /></p>
<p>Hab hier grad keinen gcc zum Testen<br />
- [EDIT] Müll [/EDIT]</p>
<p>Grüsse</p>
<p>*this</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1281171</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1281171</guid><dc:creator><![CDATA[Gast++]]></dc:creator><pubDate>Tue, 08 May 2007 19:28:16 GMT</pubDate></item><item><title><![CDATA[Reply to Manuelle Speicherfreigaben bei Programmende on Wed, 09 May 2007 05:33:23 GMT]]></title><description><![CDATA[<p>Das dürfte beim gcc immernoch so sein, generell ist das Verhalten undefiniert, muss also (z.B. beim MSVC) nicht abstürzen <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f609.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--winking_face"
      title=";)"
      alt="😉"
    /></p>
<p>EDIT: Der MSVC gibt sogar nen Linkerfehler, weil er im Ctor von A garnicht versucht über die vtable zu gehen. Also sucht er nach A::foo(), welches es nicht gibt. Schlauer Compiler <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f609.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--winking_face"
      title=";)"
      alt="😉"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1281280</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1281280</guid><dc:creator><![CDATA[LordJaxom]]></dc:creator><pubDate>Wed, 09 May 2007 05:33:23 GMT</pubDate></item><item><title><![CDATA[Reply to Manuelle Speicherfreigaben bei Programmende on Wed, 09 May 2007 09:14:27 GMT]]></title><description><![CDATA[<p>Bashar schrieb:</p>
<blockquote>
<p>Vor Programmende aufzuräumen ist ungefähr vergleichbar damit, nochmal das Treppenhaus zu fegen bevor die Abrißbirne einschlägt. OK, meine Tante würde das wahrscheinlich machen <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f642.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--slightly_smiling_face"
      title=":)"
      alt="🙂"
    /></p>
</blockquote>
<p>Deine Tante ist mir sympathisch. <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f609.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--winking_face"
      title=";-)"
      alt="😉"
    /></p>
<p>Ne im Ernst: Das würde ja bedeuten, dass man eine Sonderbehandlung für solche Variablen einführen müsste, die bis zum Programmende existieren. Denn bei allen anderen Variablen muss man sich ja auch darum kümmern, dass sie ordnungsgemäß entsorgt werden. Und andere unverwaltete Ressourcen, also z.B. Grafik-Handles etc. müsste man auch weiterhin selbst freigeben, weil dies das Betriebssystem eben nicht unbedingt übernimmt.</p>
<p>=&gt; Diese Sonderbehandlung für ganz gewisse Variablen ist auf jeden Fall sehr viel mehr Aufwand, und damit potentiell fehleranfälliger, als einfach jede Ressource ordnungsgemäß zu entsorgen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1281390</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1281390</guid><dc:creator><![CDATA[Konrad Rudolph]]></dc:creator><pubDate>Wed, 09 May 2007 09:14:27 GMT</pubDate></item><item><title><![CDATA[Reply to Manuelle Speicherfreigaben bei Programmende on Wed, 09 May 2007 10:15:09 GMT]]></title><description><![CDATA[<p>Konrad Rudolph schrieb:</p>
<blockquote>
<p>Und andere unverwaltete Ressourcen, also z.B. Grafik-Handles etc. müsste man auch weiterhin selbst freigeben, weil dies das Betriebssystem eben nicht unbedingt übernimmt.</p>
</blockquote>
<p>doch, macht es.<br />
das OS meldet sogar netzwerkverbindungen bei der gegenstelle ab, wenn dein programm abraucht.<br />
kritisch wird's vielleicht bei nichtflüchtigen sachen wie temporäre dateien und registry-einträge o.ä. die bleiben natürlich erhalten.<br />
<img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f642.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--slightly_smiling_face"
      title=":)"
      alt="🙂"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1281437</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1281437</guid><dc:creator><![CDATA[pale dog]]></dc:creator><pubDate>Wed, 09 May 2007 10:15:09 GMT</pubDate></item><item><title><![CDATA[Reply to Manuelle Speicherfreigaben bei Programmende on Wed, 09 May 2007 10:20:23 GMT]]></title><description><![CDATA[<p>Der Speicher sollte auf jeden Fall freigegeben werden. Es gibt noch andere Plattformen als BSD, Linux und Windows auf x86ern oder ähnlichem.<br />
Nehmen wir z.B. DSP's. Da gibt es (meistens) kein OS, welches irgendwas hinter einem her räumt. Wohl aber Frameworks, die Prozesse in definierter Reihenfolge abarbeiten. Wenn so ein Prozess, aus welchen Gründen auch immer, terminiert, muss der Speicher freigegeben werden. Gibt noch andere (bessere) Beispiele, auf jeden Fall sollte man sich da nicht auf das OS verlassen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1281440</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1281440</guid><dc:creator><![CDATA[Tachyon]]></dc:creator><pubDate>Wed, 09 May 2007 10:20:23 GMT</pubDate></item><item><title><![CDATA[Reply to Manuelle Speicherfreigaben bei Programmende on Wed, 09 May 2007 10:24:20 GMT]]></title><description><![CDATA[<p>pale dog schrieb:</p>
<blockquote>
<p>Konrad Rudolph schrieb:</p>
<blockquote>
<p>Und andere unverwaltete Ressourcen, also z.B. Grafik-Handles etc. müsste man auch weiterhin selbst freigeben, weil dies das Betriebssystem eben nicht unbedingt übernimmt.</p>
</blockquote>
<p>doch, macht es.</p>
</blockquote>
<p>Ich weiß nicht, ob es ein Bug oder by design ist, aber Windows gibt definitiv nicht immer alle GDI-Handles frei. Ich weiß nicht, auf welche Versionen das zutrifft aber das Verhalten ließ sich recht einfach reproduzieren. Hier musste man wirklich manuell nacharbeiten.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1281444</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1281444</guid><dc:creator><![CDATA[Konrad Rudolph]]></dc:creator><pubDate>Wed, 09 May 2007 10:24:20 GMT</pubDate></item><item><title><![CDATA[Reply to Manuelle Speicherfreigaben bei Programmende on Wed, 09 May 2007 10:37:02 GMT]]></title><description><![CDATA[<p>Tachyon schrieb:</p>
<blockquote>
<p>Der Speicher sollte auf jeden Fall freigegeben werden. Es gibt noch andere Plattformen als BSD, Linux und Windows auf x86ern oder ähnlichem.<br />
Nehmen wir z.B. DSP's. Da gibt es (meistens) kein OS, welches irgendwas hinter einem her räumt. Wohl aber Frameworks, die Prozesse in definierter Reihenfolge abarbeiten. Wenn so ein Prozess, aus welchen Gründen auch immer, terminiert, muss der Speicher freigegeben werden.</p>
</blockquote>
<p>diese prozesse laufen aber nicht in einer sandbox wie z.b. windows user-mode prozesse. wenn da einer mist baut, dann leidet das ganze system darunter. es reicht ja schon, wenn eine globalen speicherverwaltung benutzt wird und ein prozess regelmässig free oder delete auslässt.</p>
<p>Tachyon schrieb:</p>
<blockquote>
<p>Gibt noch andere (bessere) Beispiele, auf jeden Fall sollte man sich da nicht auf das OS verlassen.</p>
</blockquote>
<p>ja, die alten windosen wie windoofs 3.11, 95, 98, me.<br />
die waren sowas von schlecht...<br />
<img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f642.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--slightly_smiling_face"
      title=":)"
      alt="🙂"
    /></p>
<p>Konrad Rudolph schrieb:</p>
<blockquote>
<p>Ich weiß nicht, ob es ein Bug oder by design ist, aber Windows gibt definitiv nicht immer alle GDI-Handles frei.</p>
</blockquote>
<p>das war bei den alten 16-bittigen wins der fall (siehe oben)</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1281457</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1281457</guid><dc:creator><![CDATA[pale dog]]></dc:creator><pubDate>Wed, 09 May 2007 10:37:02 GMT</pubDate></item><item><title><![CDATA[Reply to Manuelle Speicherfreigaben bei Programmende on Wed, 09 May 2007 11:17:28 GMT]]></title><description><![CDATA[<p>pale dog schrieb:</p>
<blockquote>
<p>Konrad Rudolph schrieb:</p>
<blockquote>
<p>Und andere unverwaltete Ressourcen, also z.B. Grafik-Handles etc. müsste man auch weiterhin selbst freigeben, weil dies das Betriebssystem eben nicht unbedingt übernimmt.</p>
</blockquote>
<p>doch, macht es.<br />
das OS meldet sogar netzwerkverbindungen bei der gegenstelle ab, wenn dein programm abraucht....</p>
</blockquote>
<p>Oho, das würde ich aber nicht so allgemein sagen. Auf unseren AIX-Maschinen mussten wir extra (für die MQ-Verbindung) einen (undokumentierten) keepalive-Parameter setzen - ansonsten schlug ein Standard Timeout von 2 Stunden zu, bevor das kommunzierende System etwas merkte.<br />
Auch die Standard-TCP-Verbindungen hatten untragbare Timeouts (die aber teilweise von anderer Infrastruktur auf der Maschine gefordert wurden) ...</p>
<p>Es bleibt dabei: Alle anderen Maßnahmen bedürfen mehr Aufwand an Prüfung, Umsetzung, Testen als ein delete-Statement...</p>
<p>Gruß,</p>
<p>Simon2.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1281495</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1281495</guid><dc:creator><![CDATA[Simon2]]></dc:creator><pubDate>Wed, 09 May 2007 11:17:28 GMT</pubDate></item><item><title><![CDATA[Reply to Manuelle Speicherfreigaben bei Programmende on Wed, 09 May 2007 12:09:40 GMT]]></title><description><![CDATA[<p>Simon2 schrieb:</p>
<blockquote>
<p>Oho, das würde ich aber nicht so allgemein sagen. Auf unseren AIX-Maschinen mussten wir extra (für die MQ-Verbindung) einen (undokumentierten) keepalive-Parameter setzen - ansonsten schlug ein Standard Timeout von 2 Stunden zu, bevor das kommunzierende System etwas merkte.</p>
</blockquote>
<p>und was sagt uns das? AIX taugt nix!<br />
wieso benutzt ihr undokumentierte parameter? das ist ja erst richtig schlechter stil <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="😃"
    /><br />
btw: ein popeliges windows bekommt es doch auch hin, ein RST zu schicken, wenn das programm abgestürzt ist.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1281540</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1281540</guid><dc:creator><![CDATA[pale dog]]></dc:creator><pubDate>Wed, 09 May 2007 12:09:40 GMT</pubDate></item><item><title><![CDATA[Reply to Manuelle Speicherfreigaben bei Programmende on Wed, 09 May 2007 12:34:40 GMT]]></title><description><![CDATA[<p>pale dog schrieb:</p>
<blockquote>
<p>...<br />
wieso benutzt ihr undokumentierte parameter? ...</p>
</blockquote>
<p>Ganz einfach: Empfehlung vom Hersteller.<br />
Übrigens war es ein Parameter der MQSeries-Software und nicht vom AIX, der da gesetzt werden musste und AIX haben wir nunmal von unserer Firma als Standard aufgedrückt bekommen ... da hilft auch kein Lamentieren (zumal Windowsserver definitiv nicht das geboten hätten, was wir mit den AIX-Servern machen).</p>
<p>Ist aber letztlich auch vollkommen egal, weil immer noch nicht klar ist, warum man sich hier von Möglichkeiten/Schwächen/Eigenarten des Betriebssystems abhängig machen sollte, wenn es eine definierte, sichere und unaufwändige Standardtechnik gibt ?<br />
Bislang wurden hier ein Haufen Nachteile und nicht ein Vorteil davon genannt.<br />
Wir können noch 100 weitere Threadseiten mit der Diskussion verbringen, für welche Nachteile es evtl. bei diesem oder jenem OS eine &quot;Umschiffung&quot; gäbe, aber ohne &quot;Aufstockung der Pro-Seite&quot; wird das Fazit dasselbe bleiben...</p>
<p>Gruß,</p>
<p>Simon2.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1281561</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1281561</guid><dc:creator><![CDATA[Simon2]]></dc:creator><pubDate>Wed, 09 May 2007 12:34:40 GMT</pubDate></item><item><title><![CDATA[Reply to Manuelle Speicherfreigaben bei Programmende on Wed, 09 May 2007 12:43:11 GMT]]></title><description><![CDATA[<p>Simon2 schrieb:</p>
<blockquote>
<p>Ist aber letztlich auch vollkommen egal, weil immer noch nicht klar ist, warum man sich hier von Möglichkeiten/Schwächen/Eigenarten des Betriebssystems abhängig machen sollte, wenn es eine definierte, sichere und unaufwändige Standardtechnik gibt ?</p>
</blockquote>
<p>na, ganz einfach: warum dinge doppelt erledigen (stichwort 'abrissbirne')?<br />
aber teilweise gebe ich dir recht: irgendwie muss man sich immer darauf verlassen, dass das eine oder andere funktioniert. redundanz bring auch mehr sicherheit.<br />
<img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f642.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--slightly_smiling_face"
      title=":)"
      alt="🙂"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1281577</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1281577</guid><dc:creator><![CDATA[pale dog]]></dc:creator><pubDate>Wed, 09 May 2007 12:43:11 GMT</pubDate></item><item><title><![CDATA[Reply to Manuelle Speicherfreigaben bei Programmende on Wed, 09 May 2007 12:56:41 GMT]]></title><description><![CDATA[<p>pale dog schrieb:</p>
<blockquote>
<p>...<br />
na, ganz einfach: warum dinge doppelt erledigen (stichwort 'abrissbirne')?...</p>
</blockquote>
<p>Weil man sich offensichtlich nicht darauf verlassen kann, dass es wirklich jemand an meiner Stelle erledigt (bzw. dass die 'Abrissbirne' exakt den gewünschten Effekt hat wieder 'Staubsauger' <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="😃"
    /> ) !<br />
Und &quot;Doppelt gemoppelt&quot; wäre es sowieso nicht, weil das Betriebssystem ja keine bereits abgebauten Ressourcen erneute abbauen würde - das schlägt ja sowieso erst zu, wenn meinem Programm die Kontrolle entglitten ist ...</p>
<p>Gruß,</p>
<p>Simon2.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1281594</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1281594</guid><dc:creator><![CDATA[Simon2]]></dc:creator><pubDate>Wed, 09 May 2007 12:56:41 GMT</pubDate></item></channel></rss>