Bestimmen Sie, wie viel Speicher eine Klasse verwendet?

8

Ich versuche, einen Weg zu finden, um zur Laufzeit festzustellen, wie viel Speicher eine bestimmte Klasse in .NET verwendet. Die Verwendung von Marshal.SizeOf() ist out, da es nur für Werttypen funktioniert. Gibt es eine Möglichkeit, genau zu überprüfen, wie viel Speicher eine Klasse verwendet?

    
Jason Z 09.09.2008, 10:28
quelle

3 Antworten

5

Ich habe erst kürzlich damit begonnen, diese Art von Dingen zu untersuchen, aber ich habe herausgefunden, dass Speicher-Profiler ziemlich detaillierte Informationen über Instanzen von Objekten in Ihrer Anwendung geben können.

Hier sind ein paar, die einen Versuch wert sind:

Jarod Elliott 09.09.2008, 10:34
quelle
1

Ich stimme zu, dass ein Speicherprofiler der einfachste Weg ist, um die Informationen zu erhalten, die Sie suchen. Zusätzlich zu den beiden zuvor genannten, empfehle ich JetBrains dotTrace , das sowohl ein Leistungsprofiler als auch ein Speicherprofiler ist.

Wenn Sie es selbst machen wollen und bereit sind, sich tief in die Eingeweide der CLR zu vertiefen, können Sie die . NET Profiling API , das ist eine nicht verwaltete API, die (wie Microsoft sagt):" einem Profiler ermöglicht, die Ausführung eines Programms mit der Common Language Runtime (CLR) zu überwachen. " Es ist nicht gerade für den gelegentlichen Gebrauch gedacht, aber es hat eine enorme Menge an Funktionalität.

    
McKenzieG1 09.09.2008 13:34
quelle
1

verlinke einfach auf verwandte SO Frage:

Jakub Šturc 09.09.2008 14:55
quelle

Tags und Links