Wie profiliere ich die Speicherbelegung in meinem Projekt?

8

Gibt es gute, kostenlose Tools zum Profilieren der Speicherbelegung in C #?

Details:
Ich habe ein Visualisierungsprojekt, das ziemlich große Sammlungen verwendet. Ich möchte prüfen, welche Teile dieses Projekts - auf der Datenverarbeitungsseite oder auf der Visualisierungsseite - den größten Teil des Speichers verwenden, damit ich ihn optimieren kann.
Ich weiß, dass der Fall ziemlich einfach ist, wenn es um die Berechnung der Größe der Sammlung geht, und ich kann das alleine machen. Aber es gibt auch bestimmte Elemente, für die ich den Speicherverbrauch nicht so einfach abschätzen kann.
Die Speicherauslastung ist ziemlich groß, zum Beispiel die Verarbeitung einer Datei der Größe 35 MB mein Programm verwendet ein wenig mehr als 250 MB RAM.

    
Gacek 13.04.2010, 11:21
quelle

4 Antworten

3

Ich hatte Erfolg mit RedGates ANTS Profiler . Es lohnt sich auch, Brad Abrams Blog zu lesen, wo er hat über das Profiling von Speicher gesprochen

    
Rowland Shaw 13.04.2010, 11:22
quelle
2

Ich bin erstaunt, dass niemand den kostenlosen CLR Profiler von Microsoft erwähnt hat!

Ich kannte dieses Tool bis vor kurzem nicht. Ich hatte einen Fehler, der mein Programm immer mehr Speicher reservieren ließ. Der CLR-Profiler kann Speicherzuweisungen für "Hotspots" in Ihrem Programm ermitteln.

Ich habe innerhalb von 15 bis 20 Minuten nach der Installation des Profilers die für das Leck verantwortliche Codezeile identifiziert.

Im Grunde instrumentiert es Ihren Code und führt ihn mit etwas Profiling aus (was Ihren Code erheblich verlangsamt, 10x-100x sind die offiziellen Zahlen, die ich denke).

Sie führen eine bestimmte Arbeitslast für eine bestimmte Zeit aus, und Sie können dann sehen, an welchen Stellen in Ihrem Code wie viel Speicher zugewiesen wurde (und wie viel freigegeben wurde im Vergleich zu wie viel zurückbehalten wurde usw.).

Schau es dir an: Ссылка

Auch hier ist ein Tutorial, wie man das Tool benutzt: Ссылка

    
Morten Jensen 14.12.2015 15:38
quelle
0

JetBrains DotTrace ist auch gut. Ich habe sowohl die RedGate- als auch die JetBrains-Produkte verwendet und beide sind sehr gut darin, Engpässe und Lecks zu identifizieren.

    
Daniel Dyson 13.04.2010 11:25
quelle
0

Bestimmte SKUs von Visual Studio enthalten einen Profiler. Es ist kostenlos , wenn Sie bereits eine dieser SKUs haben.

Beginnend mit Visual Studio 2005 finden Sie den Profiler in Team Developer und Team Suite sicher. Nicht sicher, ob es in anderen SKUs enthalten ist

    
Alfred Myers 13.04.2010 11:29
quelle

Tags und Links