<?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[Problem beim Speicher freigeben]]></title><description><![CDATA[<p>hi,</p>
<p>ich habe ein kleines Testprogramm geschrieben in dem ich 768 STL-Listen mit insgesamt ca. 2millionen einträgen verwende. Der Algorithmus läuft in wenigen sekunden durch. Das komische ist nun dass er beim deallozieren also quasi beim verlassen dre fzunktion fast 5 minuten braucht um den speicher wieder freizugeben.</p>
<p>Ich habe es mit visual studio 2008 getestet.<br />
Hier der code:</p>
<pre><code>#include &lt;list&gt;
#include &lt;iostream&gt;

using namespace std;

struct TestStruct
{
	int a;
	int b;
	int c;
};

void testFunc()
{
	list&lt;TestStruct&gt; testList[256 * 3];
	TestStruct ts;

	for(int jx = 0; jx &lt; 308; ++jx)
	{
		for(int jy = 0; jy &lt; 200; ++jy)
		{
			for(int c = 0; c &lt; 3; ++c)
			{
				for(int ij = 0; ij &lt; 14; ++ij)
				{
					testList[0].push_back(ts);
				}
			}
		}
	}

	cout&lt;&lt;&quot;gebe Speicher frei...&quot;&lt;&lt;endl;
}

int main()
{
	cout&lt;&lt;&quot;start&quot;&lt;&lt;endl;
	testFunc();
	cout&lt;&lt;&quot;fertig&quot;&lt;&lt;endl;
	getchar();

	return 0;
}
</code></pre>
<p>Wie kann es sein dass er so extrem lange zum speicher freigeben braucht?<br />
Kann es sein dass es an der STL-Liste liegt?<br />
Btw. ich habe es auch schon mit einer Liste von Zeigern probiert, da gab es auch keinen Geschwindigkeitsunterschied.</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/253149/problem-beim-speicher-freigeben</link><generator>RSS for Node</generator><lastBuildDate>Mon, 14 Sep 2026 01:07:10 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/253149.rss" rel="self" type="application/rss+xml"/><pubDate>Thu, 29 Oct 2009 09:45:28 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Problem beim Speicher freigeben on Thu, 29 Oct 2009 09:45:28 GMT]]></title><description><![CDATA[<p>hi,</p>
<p>ich habe ein kleines Testprogramm geschrieben in dem ich 768 STL-Listen mit insgesamt ca. 2millionen einträgen verwende. Der Algorithmus läuft in wenigen sekunden durch. Das komische ist nun dass er beim deallozieren also quasi beim verlassen dre fzunktion fast 5 minuten braucht um den speicher wieder freizugeben.</p>
<p>Ich habe es mit visual studio 2008 getestet.<br />
Hier der code:</p>
<pre><code>#include &lt;list&gt;
#include &lt;iostream&gt;

using namespace std;

struct TestStruct
{
	int a;
	int b;
	int c;
};

void testFunc()
{
	list&lt;TestStruct&gt; testList[256 * 3];
	TestStruct ts;

	for(int jx = 0; jx &lt; 308; ++jx)
	{
		for(int jy = 0; jy &lt; 200; ++jy)
		{
			for(int c = 0; c &lt; 3; ++c)
			{
				for(int ij = 0; ij &lt; 14; ++ij)
				{
					testList[0].push_back(ts);
				}
			}
		}
	}

	cout&lt;&lt;&quot;gebe Speicher frei...&quot;&lt;&lt;endl;
}

int main()
{
	cout&lt;&lt;&quot;start&quot;&lt;&lt;endl;
	testFunc();
	cout&lt;&lt;&quot;fertig&quot;&lt;&lt;endl;
	getchar();

	return 0;
}
</code></pre>
<p>Wie kann es sein dass er so extrem lange zum speicher freigeben braucht?<br />
Kann es sein dass es an der STL-Liste liegt?<br />
Btw. ich habe es auch schon mit einer Liste von Zeigern probiert, da gab es auch keinen Geschwindigkeitsunterschied.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1800082</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1800082</guid><dc:creator><![CDATA[_nico]]></dc:creator><pubDate>Thu, 29 Oct 2009 09:45:28 GMT</pubDate></item><item><title><![CDATA[Reply to Problem beim Speicher freigeben on Thu, 29 Oct 2009 09:57:43 GMT]]></title><description><![CDATA[<p>Kann ich absolut nicht nachvollziehen (gcc ohne jegliche Optimierungen). Verwendest du möglicherweise eine Debugimplementierung der STL?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1800090</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1800090</guid><dc:creator><![CDATA[SeppJ]]></dc:creator><pubDate>Thu, 29 Oct 2009 09:57:43 GMT</pubDate></item><item><title><![CDATA[Reply to Problem beim Speicher freigeben on Thu, 29 Oct 2009 09:59:35 GMT]]></title><description><![CDATA[<p>Ich habe einfach nur visual c++ installiert und mehr nicht.<br />
Wenn ich das Program im Release build ausführe ist es auch so langsam.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1800092</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1800092</guid><dc:creator><![CDATA[_nico]]></dc:creator><pubDate>Thu, 29 Oct 2009 09:59:35 GMT</pubDate></item><item><title><![CDATA[Reply to Problem beim Speicher freigeben on Thu, 29 Oct 2009 10:06:01 GMT]]></title><description><![CDATA[<p>_nico schrieb:</p>
<blockquote>
<p>Wenn ich das Program im Release build ausführe ist es auch so langsam.</p>
</blockquote>
<p>MS baut afaik noch ne &quot;sichere Implementierung&quot; der Iteratoren und von allem möglichen ein. Schau mal in der Doku nach, es gibt da ein Flag _SECURE_STL oder sowas.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1800097</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1800097</guid><dc:creator><![CDATA[pumuckl]]></dc:creator><pubDate>Thu, 29 Oct 2009 10:06:01 GMT</pubDate></item><item><title><![CDATA[Reply to Problem beim Speicher freigeben on Thu, 29 Oct 2009 14:54:14 GMT]]></title><description><![CDATA[<p>pumuckl schrieb:</p>
<blockquote>
<p>_nico schrieb:</p>
<blockquote>
<p>Wenn ich das Program im Release build ausführe ist es auch so langsam.</p>
</blockquote>
<p>MS baut afaik noch ne &quot;sichere Implementierung&quot; der Iteratoren und von allem möglichen ein. Schau mal in der Doku nach, es gibt da ein Flag _SECURE_STL oder sowas.</p>
</blockquote>
<p>es wird aber weniger daran liegen als an der debug-runtimelib(würd ich jz zumindest mal ganz frech behaupten wollen^^)<br />
was passiert, wenn du die releaseversion der *.exe von hand ausführst?<br />
dauert es dann auch so lang?<br />
es wird intern immerhin ja auch (mind.) 2'500'000 mal delete aufgerufen - bei 5 Minuten würde ein delete also 0.00012Sekunden dauern - kann ich mir in der Debug-Runtime durchaus vorstellen...</p>
<p>bb</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1800273</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1800273</guid><dc:creator><![CDATA[unskilled]]></dc:creator><pubDate>Thu, 29 Oct 2009 14:54:14 GMT</pubDate></item><item><title><![CDATA[Reply to Problem beim Speicher freigeben on Thu, 29 Oct 2009 17:15:31 GMT]]></title><description><![CDATA[<p>Wenn ich die exe der release version ausführe läuft es sehr schnell.<br />
Scheint wohl an der debugruntime von visual studio zu liegen.</p>
<p>Naja vielen dank für die antworten <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/1800340</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1800340</guid><dc:creator><![CDATA[_nico]]></dc:creator><pubDate>Thu, 29 Oct 2009 17:15:31 GMT</pubDate></item><item><title><![CDATA[Reply to Problem beim Speicher freigeben on Thu, 29 Oct 2009 17:54:24 GMT]]></title><description><![CDATA[<p>_nico schrieb:</p>
<blockquote>
<p>Wenn ich die exe der release version ausführe läuft es sehr schnell.<br />
Scheint wohl an der debugruntime von visual studio zu liegen.</p>
<p>Naja vielen dank für die antworten <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>
</blockquote>
<p>ich glaub, die kann man auch iwo im vs deaktivieren - vermutlich bei den Profilen, aber vll auch in Projektoptionen - wenn dir so ist, kannst du ja ma suchen und hier posten, dann kann ich mir das ma bookmarken und weiß gleich, wie es aus geht, falls ich es auch mal brauchen sollte xD</p>
<p>bb</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1800356</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1800356</guid><dc:creator><![CDATA[unskilled]]></dc:creator><pubDate>Thu, 29 Oct 2009 17:54:24 GMT</pubDate></item><item><title><![CDATA[Reply to Problem beim Speicher freigeben on Thu, 29 Oct 2009 22:05:18 GMT]]></title><description><![CDATA[<p>Einfach &quot;Starten ohne Debuggen&quot; benutzen (Strg+F5)..</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1800470</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1800470</guid><dc:creator><![CDATA[life]]></dc:creator><pubDate>Thu, 29 Oct 2009 22:05:18 GMT</pubDate></item></channel></rss>