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 nicht möglich, da es nur für Werttypen funktioniert. Gibt es eine Möglichkeit, genau zu überprüfen, wie viel Speicher eine Klasse verwendet?Bestimmen Sie, wie viel Speicher eine Klasse verwendet?
Antwort
Ich habe erst vor kurzem begonnen, diese Art von Sache zu untersuchen, aber ich habe festgestellt, 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:
Ich bin damit einverstanden, dass ein Speicher-Profiler der einfachste Weg ist es, die Informationen, die Sie suchen zu erhalten. Zusätzlich zu den beiden zuvor genannten, empfehle ich JetBrains dotTrace, die beide ein Leistungsprofiler und ein Speicherprofiler ist.
Wenn Sie es selbst tun möchten und bereit sind, tief in die Eingeweide der CLR zu kommen, können Sie die .NET Profiling API verwenden, die eine nicht verwaltete API ist, die (wie Microsoft sagt): "die Überwachung eines Profilers ermöglicht die Ausführung eines Programms durch die Common Language Runtime (CLR). " Es ist nicht für den gelegentlichen Gebrauch bestimmt, aber es hat eine enorme Menge Funktionalität.
verknüpfen nur im Zusammenhang SO Frage:
- 1. Wie viel Speicher verwendet eine Nashorn ScriptEngine?
- 2. Wie viel Speicher verwendet eine Hashtable?
- 3. Wie viel Speicher verwendet mein Kernelmodul?
- 4. Solr verwendet zu viel Speicher
- 5. Wie viel Speicher verwendet PHP tatsächlich?
- 6. Wie viel Speicher verwendet ein C++ Zeiger?
- 7. Wie viel Speicher wird von Mondrian verwendet?
- 8. jquery Skript verwendet zu viel Speicher
- 9. Java .jar verwendet zu viel Speicher
- 10. Fragment Backstack verwendet zu viel Speicher
- 11. Verwendet die GD-Bibliothek viel Speicher?
- 12. Python-Skript weiß, wie viel Speicher es verwendet
- 13. Wie viel Speicher lässt iOS Apps zu?
- 14. Wie verwendet Java-Objekte Speicher?
- 15. Service viel Speicher zuweisen?
- 16. Elasticsearch, das aufgrund von Groovy-Skripts viel Speicher verwendet
- 17. IIS-Arbeitsprozess mit viel Speicher?
- 18. Warum verwendet (Summe $ takeWhile (<10000000) [1 ..]) so viel Speicher?
- 19. In Objective-C, wie weiß + Alloc wie viel Speicher zuzuweisen?
- 20. ABCPdf verwendet viel Speicher und erzeugt riesige Dateien. Lösung?
- 21. Java-App, die viel Speicher verwendet. Benutze -Xmx?
- 22. Wie viel RAM verwendet SQL Server tatsächlich?
- 23. Finden Sie heraus, wie viel Speicher von einem Objekt in C# verwendet wird?
- 24. (HTML 5) Wie viel ist zu viel lokaler Speicher?
- 25. Wie viel Speicher kann eine iPhone App verwenden?
- 26. (iphone) Wie viel Speicher verbraucht UIImage?
- 27. Wie viel Speicher sollte "managed_shared_memory" zuweisen? (Boost)
- 28. Gibt es eine Möglichkeit zu messen, wie viel ein Shell-Befehl Speicher verwendet?
- 29. Wie verwendet Schienen Speicher?
- 30. Magento - Bestimmen Sie, welche XML-Layout-Datei eine Seite verwendet?