2012-11-22 9 views
6

Powiel możliwe:
Monitoring Garbage Collector in C#Czy mogę wykryć moment, w którym proces zbierania śmieci uruchamiany jest w .NET?

Chciałbym wiedzieć, jak często zbieranie śmieci prowadzony jest w mojej aplikacji C# tak, że mogę się zalogować timestampów do późniejszej analizy.

Czy jest jakieś wydarzenie lub coś podobnego, które zostało wystrzelone przed lub po zbiorze śmieci, aby wiedzieć, kiedy dokładnie dokonano zbierania śmieci?

+4

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

+0

I Zgadujesz, że robisz to dla monitorowania wydajności? Może to będzie pomocne: http://msdn.microsoft.com/en-us/library/ee851764.aspx –

+0

Czy to nie działa tylko dla zbiorów FULL? Jest fajny kawałek kodu z Jeffrey'a Richtera, gdzie ma "obojętny" obiekt, który tworzy nową instancję "manekina", za każdym razem, gdy wywoływana jest metoda Finalize. Ponieważ ten obiekt jest tworzony w wersji gen0, przechwytujesz każdą kolekcję. Czy funkcja RegisterForFullGCNotification przechwytuje także, gdy wszystkie obiekty w genie0 zostaną zebrane i żadna nie zostanie awansowana na gen1? – igrimpe

Odpowiedz

Powiązane problemy