Ist es möglich, die Zuteilung/Freigabe zu verfolgen?
-
09-06-2019 - |
Frage
Soweit ich das beurteilen kann, ist dies nicht möglich, daher hoffe ich wirklich nur auf eine Hook-Funktion für die undokumentierte Zuordnung im linken Feld.
Ich möchte eine Möglichkeit haben, Zuweisungen wie in zu verfolgen _CrtSetAllocHook, aber für C#/.NET
.
Die einzige Sichtbarkeit für den Garbage Collector/die Zuordnung scheint zu sein GC.CollectionCount.
Hat jemand ein anderes .NET-Speichermojo?
Lösung
Die CLR verfügt über eine „Profiling-API“, die sich in so ziemlich alles einbinden lässt – ich glaube, das ist es, was die kommerziellen .NET-Speicherprofilierungsprodukte verwenden.Hier ist ein MSDN-Link zur obersten Ebene der Dokumentation: Allgemeine Referenz zum .NET Framework:Über die Profiling-API
Eine Einführung in das Erinnerungsstück finden Sie in diesem MSDN-Magazinartikel: Überprüfen und optimieren Sie die Speichernutzung Ihres Programms mit der .NET Profiler-API
Andere Tipps
Ich würde einfach den ANTS Profiler von Red Gate verwenden.Dadurch erfahren Sie viel darüber, was im Speicher vor sich geht, ohne dass Sie sich selbst mit der Profiling-API vertraut machen müssen.