Laden...

Speicherverbrauch analysieren

Erstellt von Samson vor 18 Jahren Letzter Beitrag vor 18 Jahren 2.156 Views
Samson Themenstarter:in
25 Beiträge seit 2005
vor 18 Jahren
Speicherverbrauch analysieren

Hallo,

ich habe ein Problem mit dem Speicherhunger einer Anwendung die ich so nicht direkt nachvollziehen kann. Es ist eine größere App mit WinForms, DataSets, XML usw. Ich habe auch mit verschiedenen Memory Profilern versucht der Sache auf die Spur zu kommen aber es hat nicht viel geholfen da die Profiler meist instabil und unübersichtlich waren.

Beim Arbeiten mit der Anwendung brauche ich etwas über 100MB (Release-Build) und möchte einfach rauskriegen welche Objekte dafür verantwortlich sind. Dazu habe ich auch an diversen Stellen eine Ausgabe eingebaut die mir den Speicher anzeigt.


long mem = GC.GetTotalMemory(false);
Console.WriteLine("Total memory: {0} Kb", mem/1024);

Wenn alles geladen ist und die Anwendung läuft liefert der Aufruf mir einen Wert um die 20MB. Die Assemblies selbst kommen auf insgesamt ca. 30 MB womit wir bei etwa 50 MB wären. Wofür verdammt nochmal geht der restliche Speicher drauf??

Es muss doch einen Weg geben das herauszukriegen. Hat sich jemand mal dafür interessiert und kann mir vielleicht einen Tip geben? Ich achte bereits darauf nicht mehr benötigte Referenzen auf null zu setzen und auch Bindings auf Events werden wieder deregistriert wenn das entsprechende Objekt stirbt.

Was kann ich noch machen?? Bitte helfen..

Samson Themenstarter:in
25 Beiträge seit 2005
vor 18 Jahren

Hallo nochmal,

hat den niemand eine Idee was man da machen kann? Ich bin doch bestimmt nicht der einzige den so etwas interessiert. Die Frage nach dem Speicherverbrauch kommt immer wieder und es gibt doch sicher einige die dieser Frage in Ihrer Anwendung nachgegangen sind..
Kann mir jemand einen Tip geben..?

S
8.746 Beiträge seit 2005
vor 18 Jahren

Ohne Profiler geht da nix. Besorg dir einen guten und lerne ihn zu benutzen und zu verstehen. Intensive Kenntnisse in der Wirkungsweise des GC sollten vorhanden sein.