2012-11-22 9 views
6

Mögliche Duplizieren:
Monitoring Garbage Collector in C#Kann ich den Zeitpunkt erkennen, an dem die Garbage Collection in .NET ausgeführt wird?

Ich würde gerne wissen, wie oft die Garbage Collection wird in meiner C# Anwendung ausführen, so dass ich den Zeitstempel für eine spätere Analyse anmelden kann.

Gibt es möglicherweise ein Ereignis oder etwas Ähnliches, das vor oder nach der Garbage Collection ausgelöst wird, sodass ich weiß, wann genau die Garbage Collection stattgefunden hat?

+4

[GC.RegisterForFullGCNotification] (http://msdn.microsoft.com/en-us/library/system.gc.registerforfullgcnotification.aspx) –

+0

I Ich vermute, Sie machen das für die Leistungsüberwachung? Vielleicht wird dies hilfreich sein: http://msdn.microsoft.com/en-us/library/ee851764.aspx –

+0

Funktioniert das nicht nur für vollständige Sammlungen? Es gibt einen schönen Code von Jeffrey Richter, wo er ein "dummy" -Objekt hat, das eine neue Instanz von "dummy" erzeugt, sobald die Finalize-Methode aufgerufen wird. Da dieses Objekt in gen0 erstellt wird, fangen Sie jede Sammlung ab. Wird die Registrierung von RegisterForFullGCNotification auch ausgeführt, wenn alle Objekte in gen0 gesammelt werden und keiner zu gen1 hochgestuft wird? – igrimpe

Antwort