<?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[Programm frisst zuviel Speicher]]></title><description><![CDATA[<p>Hallo,<br />
ich wollte mal fragen, ob jemand weiß ob es eine möglichkeit gibt, [EDIT: zur laufzeit] festzustellen wann und wo ein Programm neuen Speicher anfordert.<br />
Mir ist nämlich aufgefallen, dass mein Programm neuerdings vielzuviel Speicher frisst und ich nicht weiß woran es liegt. Ich kann leider nicht reproduzieren an welcher Codeänderung es liegt, da einiges passiert ist, seit ich mir die Speicherauslastung das letzte mal angeschaut habe. Ic vermute es sind Speicherlöcher, bin mir aber nicht sicher.<br />
Ich verwende nebenher noch Qt 4.3.3 + OpenGL, für das Oberflächendesign und Grafikdarstellungen, könnte also auch daran liegen, würde ich aber erstmal ausschließen, das wäre bestimmt schon jemandem aufgefallen.<br />
Seltsam ist, dass er Speicher aufbaut, wenn ich nur die Maus über das Widget zur Grafikdarstellung bewege. Weiterer seltsamer Punkt ist, wenn ich das Programm minimiere und danach wieder auf den Desktop hole, ist der Großteil des Speichers wieder frei, was vllt gegen Speicherlöcher meinerseits spricht (fällt von gut 640MB auf 15 MB).<br />
Desweiteren hab ich erst vermutet es liegt am Debugmodus aber im Releasemodus sieht es ähnlich aus, benutze übrigens MSVS2008.<br />
Wäre für Vorschläge dankbar.<br />
Grüße</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/277479/programm-frisst-zuviel-speicher</link><generator>RSS for Node</generator><lastBuildDate>Tue, 25 Aug 2026 12:44:56 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/277479.rss" rel="self" type="application/rss+xml"/><pubDate>Fri, 19 Nov 2010 10:25:24 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Programm frisst zuviel Speicher on Fri, 19 Nov 2010 10:40:32 GMT]]></title><description><![CDATA[<p>Hallo,<br />
ich wollte mal fragen, ob jemand weiß ob es eine möglichkeit gibt, [EDIT: zur laufzeit] festzustellen wann und wo ein Programm neuen Speicher anfordert.<br />
Mir ist nämlich aufgefallen, dass mein Programm neuerdings vielzuviel Speicher frisst und ich nicht weiß woran es liegt. Ich kann leider nicht reproduzieren an welcher Codeänderung es liegt, da einiges passiert ist, seit ich mir die Speicherauslastung das letzte mal angeschaut habe. Ic vermute es sind Speicherlöcher, bin mir aber nicht sicher.<br />
Ich verwende nebenher noch Qt 4.3.3 + OpenGL, für das Oberflächendesign und Grafikdarstellungen, könnte also auch daran liegen, würde ich aber erstmal ausschließen, das wäre bestimmt schon jemandem aufgefallen.<br />
Seltsam ist, dass er Speicher aufbaut, wenn ich nur die Maus über das Widget zur Grafikdarstellung bewege. Weiterer seltsamer Punkt ist, wenn ich das Programm minimiere und danach wieder auf den Desktop hole, ist der Großteil des Speichers wieder frei, was vllt gegen Speicherlöcher meinerseits spricht (fällt von gut 640MB auf 15 MB).<br />
Desweiteren hab ich erst vermutet es liegt am Debugmodus aber im Releasemodus sieht es ähnlich aus, benutze übrigens MSVS2008.<br />
Wäre für Vorschläge dankbar.<br />
Grüße</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1982745</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1982745</guid><dc:creator><![CDATA[StarCraftFeuerteufel]]></dc:creator><pubDate>Fri, 19 Nov 2010 10:40:32 GMT</pubDate></item><item><title><![CDATA[Reply to Programm frisst zuviel Speicher on Fri, 19 Nov 2010 10:27:10 GMT]]></title><description><![CDATA[<p>Operator new!?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1982747</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1982747</guid><dc:creator><![CDATA[HighLigerBiMBam]]></dc:creator><pubDate>Fri, 19 Nov 2010 10:27:10 GMT</pubDate></item><item><title><![CDATA[Reply to Programm frisst zuviel Speicher on Fri, 19 Nov 2010 10:37:25 GMT]]></title><description><![CDATA[<p>ja den verwende ich bzw new[], mir gehts ehr darum das zur laufzeit festzustellen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1982752</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1982752</guid><dc:creator><![CDATA[StarCraftFeuerteufel]]></dc:creator><pubDate>Fri, 19 Nov 2010 10:37:25 GMT</pubDate></item><item><title><![CDATA[Reply to Programm frisst zuviel Speicher on Fri, 19 Nov 2010 10:43:48 GMT]]></title><description><![CDATA[<p>Du kannst den Standard-&quot;operator new&quot; gegen einen eigenen austauschen. Dazu müsste in &quot;Effektiv C++ programmieren&quot; (1. Teil) was stehen. Damit kannst du Speicheranforderungen mitloggen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1982757</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1982757</guid><dc:creator><![CDATA[Michael E.]]></dc:creator><pubDate>Fri, 19 Nov 2010 10:43:48 GMT</pubDate></item><item><title><![CDATA[Reply to Programm frisst zuviel Speicher on Fri, 19 Nov 2010 10:48:38 GMT]]></title><description><![CDATA[<p>FreakyBKA schrieb:</p>
<blockquote>
<p>..wenn ich das Programm minimiere und danach wieder auf den Desktop hole, ist der Großteil des Speichers wieder frei..</p>
</blockquote>
<p>Du interpretierst das falsch. Ich gehe davon aus, dass du Windows und den Taskmanager verwendest. Unter &quot;Speicherverbrauch&quot; wird aber nur das &quot;WorkingSetSize&quot; der Anwendung angezeigt (aus der Struktur PROCESS_MEMORY_COUNTERS). Der tatsächliche Speicher ist der virtuelle Speicher udn kann im Taskmanager unter Ansicht-&gt;Spalten angezeigt werden.<br />
640MB für eine Anwendung (oder ist es ein Spiel?) finde ich schon recht happig.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1982761</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1982761</guid><dc:creator><![CDATA[Vicious Falcon]]></dc:creator><pubDate>Fri, 19 Nov 2010 10:48:38 GMT</pubDate></item><item><title><![CDATA[Reply to Programm frisst zuviel Speicher on Fri, 19 Nov 2010 10:51:42 GMT]]></title><description><![CDATA[<p>Oder man klinkt sich einfachs ins Speichermanagement ein. Für die CRT (C Runtime) von MSVC geht dies über<a href="http://msdn.microsoft.com/en-us/library/820k4tb8.aspx" rel="nofollow"> <code>_CrtSetAllocHook</code> </a>.<br />
Falls man auch noch die COM Speicherverwaltung prüfen möchte, dann geht dies über<a href="http://msdn.microsoft.com/en-us/library/ms688508.aspx" rel="nofollow"> <code>IMallocSpy</code> </a>.</p>
<p>Gibt auch verschiedene fertige Tools im Internet dafür, welche aber meistens für das Entdecken von &quot;Speicherlöcher&quot; sind.</p>
<p>Aber mal eine andere Frage noch:<br />
Wie hast du überhaupt festgestellt, wieviel Speicher verbraucht wird? Ich hoffe doch nicht, dass du dazu den Taskmanager verwendet hast?</p>
<p>Grüssli</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1982763</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1982763</guid><dc:creator><![CDATA[Dravere]]></dc:creator><pubDate>Fri, 19 Nov 2010 10:51:42 GMT</pubDate></item><item><title><![CDATA[Reply to Programm frisst zuviel Speicher on Fri, 19 Nov 2010 10:53:29 GMT]]></title><description><![CDATA[<p>doch den hab ich verwendet, wie soll ich es denn sonst machen? als erster indikator kann man den doch nehmen oder etwa nicht?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1982764</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1982764</guid><dc:creator><![CDATA[StarCraftFeuerteufel]]></dc:creator><pubDate>Fri, 19 Nov 2010 10:53:29 GMT</pubDate></item><item><title><![CDATA[Reply to Programm frisst zuviel Speicher on Fri, 19 Nov 2010 10:59:33 GMT]]></title><description><![CDATA[<p>Michael E. schrieb:</p>
<blockquote>
<p>Du kannst den Standard-&quot;operator new&quot; gegen einen eigenen austauschen. Dazu müsste in &quot;Effektiv C++ programmieren&quot; (1. Teil) was stehen. Damit kannst du Speicheranforderungen mitloggen.</p>
</blockquote>
<p>Genau so wie hier beschrieben, die Operatoren new und delete überschreiben. Somit weißt du immer wie viel Speicher deine Anwendung derzeit belegt.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1982768</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1982768</guid><dc:creator><![CDATA[HighLigerBiMBam]]></dc:creator><pubDate>Fri, 19 Nov 2010 10:59:33 GMT</pubDate></item><item><title><![CDATA[Reply to Programm frisst zuviel Speicher on Fri, 19 Nov 2010 11:10:24 GMT]]></title><description><![CDATA[<p>FreakyBKA schrieb:</p>
<blockquote>
<p>doch den hab ich verwendet, wie soll ich es denn sonst machen? als erster indikator kann man den doch nehmen oder etwa nicht?</p>
</blockquote>
<p>So wie ich es geschrieben habe, das ist die zuverlässigste Methode unter Windows. Beim TaskManager hat noch das System selber seine Funktionen im Spiel. Was du siehst, ist der vom System dem Programm zugeordnete Speicher. Das Programm muss aber diesen Speicher gar nicht verwenden oder benötigen.</p>
<p>HighLigerBiMBam schrieb:</p>
<blockquote>
<p>Michael E. schrieb:</p>
<blockquote>
<p>Du kannst den Standard-&quot;operator new&quot; gegen einen eigenen austauschen. Dazu müsste in &quot;Effektiv C++ programmieren&quot; (1. Teil) was stehen. Damit kannst du Speicheranforderungen mitloggen.</p>
</blockquote>
<p>Genau so wie hier beschrieben, die Operatoren new und delete überschreiben. Somit weißt du immer wie viel Speicher deine Anwendung derzeit belegt.</p>
</blockquote>
<p>Nein, weiss er nicht. <code>operator new</code> zu überladen heisst nur einen kleinen Teil des Speicherverbrauchs zu überwachen.</p>
<p>Grüssli</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1982775</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1982775</guid><dc:creator><![CDATA[Dravere]]></dc:creator><pubDate>Fri, 19 Nov 2010 11:10:24 GMT</pubDate></item><item><title><![CDATA[Reply to Programm frisst zuviel Speicher on Fri, 19 Nov 2010 11:16:22 GMT]]></title><description><![CDATA[<p>Naja, wenn du operator new und operator new[] kontrollierst, bleibt an Speicheränderungen nur noch der Stack. Und auf diesem kann nicht in dieser Größenordnung reserviert werden.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1982784</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1982784</guid><dc:creator><![CDATA[Michael E.]]></dc:creator><pubDate>Fri, 19 Nov 2010 11:16:22 GMT</pubDate></item><item><title><![CDATA[Reply to Programm frisst zuviel Speicher on Fri, 19 Nov 2010 11:20:46 GMT]]></title><description><![CDATA[<p>Michael E. schrieb:</p>
<blockquote>
<p>Naja, wenn du operator new und operator new[] kontrollierst, bleibt an Speicheränderungen nur noch der Stack. Und auf diesem kann nicht in dieser Größenordnung reserviert werden.</p>
</blockquote>
<p>Ach und was ist mit <code>malloc</code> ? Oder meinst du niemand verwendet <code>malloc</code> ? Würde mich nicht erstaunen, wenn sogar Qt <code>malloc</code> verwendet. Wenn man den tatsächlichen Speicherverbrauch herausfinden will, muss man schliesslich alles prüfen. Es kann ja sein, dass man einen legalen hohen Speicherverbrauch hat, weil man irgendwo eine Bibliothek zu massiv oder falsch einsetzt. Du weisst nicht, wie diese Bibliothek den Speicherverbrauch verwaltet. Du kannst mit der Überladung von <code>operator new</code> nicht mal auf deren Speicherverbrauch zugreifen, da dies nicht über Bibliotheksgrenzen geht.</p>
<p>Grüssli</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1982786</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1982786</guid><dc:creator><![CDATA[Dravere]]></dc:creator><pubDate>Fri, 19 Nov 2010 11:20:46 GMT</pubDate></item><item><title><![CDATA[Reply to Programm frisst zuviel Speicher on Fri, 19 Nov 2010 11:23:23 GMT]]></title><description><![CDATA[<p>Stimmt.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1982788</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1982788</guid><dc:creator><![CDATA[Michael E.]]></dc:creator><pubDate>Fri, 19 Nov 2010 11:23:23 GMT</pubDate></item><item><title><![CDATA[Reply to Programm frisst zuviel Speicher on Thu, 02 Dec 2010 10:25:29 GMT]]></title><description><![CDATA[<p>sorry, dass ich das jetzt nach 2 wochen noch einmal rauskrame. aber ich habe jetzt herausgefunden, dass mein programm jedesmal 8KB mehr speicher zugewiesen bekommt (Taskmanager), wenn ich die cosf bzw sinf funktion aufrufe, die standardmäßig dabei sind.<br />
kann mir jemand sagen woran das liegt, denn darin liegt dann wahrscheinlich die ursache für mein speicherproblem, da ich sehr viel mit cos und sin-aufrufen arbeite.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1988919</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1988919</guid><dc:creator><![CDATA[StarCraftFeuerteufel]]></dc:creator><pubDate>Thu, 02 Dec 2010 10:25:29 GMT</pubDate></item></channel></rss>