2012-11-22 7 views
6

Eventuali duplicati:
Monitoring Garbage Collector in C#Posso rilevare il momento in cui la garbage collection viene eseguita in .NET?

Mi piacerebbe sapere quanto spesso la raccolta dei rifiuti è gestito nel mio C# applicazione in modo che io possa accedere il timestamp per un'analisi successiva.

C'è forse qualche evento o qualcosa di simile che viene licenziato prima o dopo la raccolta dei rifiuti in modo che io so esattamente quando la raccolta dei rifiuti è successo?

+4

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

+0

I Suppongo che lo stai facendo per il monitoraggio delle prestazioni? Forse questo sarà utile: http://msdn.microsoft.com/en-us/library/ee851764.aspx –

+0

Non che il lavoro solo per le collezioni? C'è un bel pezzo di codice di Jeffrey Richter, in cui ha un oggetto "fittizio" che crea una nuova istanza di "dummy", ogni volta che viene chiamato il metodo Finalize. Poiché questo oggetto è stato creato in gen0, si cattura qualsiasi raccolta. RegisterForFullGCNotification rileva anche quando tutti gli oggetti di gen0 vengono raccolti e nessuno viene promosso a gen1? – igrimpe

risposta