Zdarzenia ETW odzyskiwania pamięci

Te zdarzenia zbierają informacje dotyczące odzyskiwania pamięci. Pomagają one w diagnostyce i debugowaniu, w tym określaniu, ile razy zostało wykonane odzyskiwanie pamięci, ile pamięci zostało zwolnione podczas odzyskiwania pamięci itd.

Ta kategoria składa się z następujących zdarzeń:

zdarzenie GCStart_V1

W poniższej tabeli przedstawiono słowo kluczowe i poziom. Aby uzyskać więcej informacji, zobacz CLR ETW Keywords and Levels (Słowa kluczowe i poziomy ŚRODOWISKA CLR ETW).

Słowo kluczowe do zgłaszania zdarzenia Poziom
GCKeyword (0x1) Informacyjne (4)

W poniższej tabeli przedstawiono informacje o zdarzeniu:

Zdarzenie Identyfikator zdarzenia Podniesione, gdy
GCStart_V1 1 Rozpoczęto odzyskiwanie pamięci.

W poniższej tabeli przedstawiono dane zdarzenia:

Nazwa pola Typ danych opis
Count win:UInt32 Nth wyrzucanie pamięci.
Głębokość win:UInt32 Zbierane jest pokolenie.
Przyczyna win:UInt32 Dlaczego odzyskiwanie pamięci zostało wyzwolone:

0x0 — alokacja sterty małych obiektów.

0x1 - indukowany.

0x2 — mała ilość pamięci.

0x3 — puste.

0x4 — alokacja sterty dużych obiektów.

0x5 — brak miejsca (dla małego sterta obiektu).

0x6 — brak miejsca (w przypadku dużych stert obiektów).

0x7 - wywołane, ale nie wymuszone jako blokowanie.

0x8 — testy stresu.

0x9 - Wątek finalizatora zaobserwował, że proces jest w małej ilości pamięci i wywołał GC.

0x10 — kod użytkownika indukował GC i zażądał, aby był to kompaktowanie GC.
Typ win:UInt32 0x0 — blokowanie odzyskiwania pamięci nastąpiło poza odzyskiwaniem pamięci w tle.

0x1 — odzyskiwanie pamięci w tle.

0x2 — blokowanie odzyskiwania pamięci wystąpiło podczas odzyskiwania pamięci w tle.
ClrInstanceID win:UInt16 Unikatowy identyfikator wystąpienia środowiska CLR lub CoreCLR.

Zdarzenie GCEnd_V1

W poniższej tabeli przedstawiono słowo kluczowe i poziom:

Słowo kluczowe do zgłaszania zdarzenia Poziom
GCKeyword (0x1) Informacyjne (4)

W poniższej tabeli przedstawiono informacje o zdarzeniu:

Zdarzenie Identyfikator zdarzenia Podniesione, gdy
GCEnd_V1 2 Odzyskiwanie pamięci zostało zakończone.

W poniższej tabeli przedstawiono dane zdarzenia:

Nazwa pola Typ danych opis
Count win:UInt32 Nth wyrzucanie pamięci.
Głębokość win:UInt32 Generacja, która została zebrana.
ClrInstanceID win:UInt16 Unikatowy identyfikator wystąpienia środowiska CLR lub CoreCLR.

zdarzenie GCHeapStats_V1

W poniższej tabeli przedstawiono słowo kluczowe i poziom:

Słowo kluczowe do zgłaszania zdarzenia Poziom
GCKeyword (0x1) Informacyjne (4)

W poniższej tabeli przedstawiono informacje o zdarzeniu:

Zdarzenie Identyfikator zdarzenia opis
GCHeapStats_V1 100 Przedstawia statystyki sterty na końcu każdego odzyskiwania pamięci.

W poniższej tabeli przedstawiono dane zdarzenia:

Nazwa pola Typ danych opis
GenerationSize0 win:UInt64 Rozmiar w bajtach pamięci generacji 0.
TotalPromotedSize0 win:UInt64 Liczba bajtów, które są promowane z generacji 0 do generacji 1.
GenerationSize1 win:UInt64 Rozmiar w bajtach pamięci generacji 1.
TotalPromotedSize1 win:UInt64 Liczba bajtów, które są promowane z generacji 1 do generacji 2.
GenerationSize2 win:UInt64 Rozmiar w bajtach pamięci 2. generacji.
TotalPromotedSize2 win:UInt64 Liczba bajtów, które przetrwały w generacji 2 po ostatniej kolekcji.
GenerationSize3 win:UInt64 Rozmiar w bajtach dużego sterty obiektu.
TotalPromotedSize3 win:UInt64 Liczba bajtów, które przetrwały w stercie dużych obiektów po ostatniej kolekcji.
FinalizacjaPromotedSize win:UInt64 Całkowity rozmiar (w bajtach) obiektów gotowych do finalizacji.
FinalizacjaPromotedCount win:UInt64 Liczba obiektów gotowych do finalizacji.
PinnedObjectCount win:UInt32 Liczba przypiętych (wymiennych) obiektów.
SinkBlockCount win:UInt32 Liczba używanych bloków synchronizacji.
GCHandleCount win:UInt32 Liczba używanych dojść do odzyskiwania pamięci.
ClrInstanceID win:UInt16 Unikatowy identyfikator wystąpienia środowiska CLR lub CoreCLR.

zdarzenie GCHeapStats_V2

W poniższej tabeli przedstawiono słowo kluczowe i poziom:

Słowo kluczowe do zgłaszania zdarzenia Poziom
GCKeyword (0x1) Informacyjne (4)

W poniższej tabeli przedstawiono informacje o zdarzeniu:

Zdarzenie Identyfikator zdarzenia opis
GCHeapStats_V2 100 Przedstawia statystyki sterty na końcu każdego odzyskiwania pamięci.

W poniższej tabeli przedstawiono dane zdarzenia:

Nazwa pola Typ danych opis
GenerationSize0 win:UInt64 Rozmiar w bajtach pamięci generacji 0.
TotalPromotedSize0 win:UInt64 Liczba bajtów, które są promowane z generacji 0 do generacji 1.
GenerationSize1 win:UInt64 Rozmiar w bajtach pamięci generacji 1.
TotalPromotedSize1 win:UInt64 Liczba bajtów, które są promowane z generacji 1 do generacji 2.
GenerationSize2 win:UInt64 Rozmiar w bajtach pamięci 2. generacji.
TotalPromotedSize2 win:UInt64 Liczba bajtów, które przetrwały w generacji 2 po ostatniej kolekcji.
GenerationSize3 win:UInt64 Rozmiar w bajtach dużego sterty obiektu.
TotalPromotedSize3 win:UInt64 Liczba bajtów, które przetrwały w stercie dużych obiektów po ostatniej kolekcji.
FinalizacjaPromotedSize win:UInt64 Całkowity rozmiar (w bajtach) obiektów gotowych do finalizacji.
FinalizacjaPromotedCount win:UInt64 Liczba obiektów gotowych do finalizacji.
PinnedObjectCount win:UInt32 Liczba przypiętych (wymiennych) obiektów.
SinkBlockCount win:UInt32 Liczba używanych bloków synchronizacji.
GCHandleCount win:UInt32 Liczba używanych dojść do odzyskiwania pamięci.
ClrInstanceID win:UInt16 Unikatowy identyfikator wystąpienia środowiska CLR lub CoreCLR.
GenerationSize4 win:UInt64 Rozmiar w bajtach przypiętego sterty obiektu.
TotalPromotedSize4 win:UInt64 Liczba bajtów, które przetrwały we przypiętej stercie obiektu po ostatniej kolekcji.

zdarzenie GCCreateSegment_V1

W poniższej tabeli przedstawiono słowo kluczowe i poziom:

Słowo kluczowe do zgłaszania zdarzenia Poziom
GCKeyword (0x1) Informacyjne (4)

W poniższej tabeli przedstawiono informacje o zdarzeniu:

Zdarzenie Identyfikator zdarzenia Podniesione, gdy
GCCreateSegment_V1 5 Utworzono nowy segment odzyskiwania pamięci. Ponadto po włączeniu śledzenia w procesie, który jest już uruchomiony, to zdarzenie jest zgłaszane dla każdego istniejącego segmentu.

W poniższej tabeli przedstawiono dane zdarzenia:

Nazwa pola Typ danych opis
Adres win:UInt64 Adres segmentu.
Rozmiar win:UInt64 Rozmiar segmentu.
Typ win:UInt32 0x0 — sterta małego obiektu.

0x1 — sterta dużych obiektów.

0x2 — sterta tylko do odczytu.
ClrInstanceID win:UInt16 Unikatowy identyfikator wystąpienia środowiska CLR lub CoreCLR.

Należy pamiętać, że rozmiar segmentów przydzielonych przez moduł odśmieceń pamięci jest specyficzny dla implementacji i może ulec zmianie w dowolnym momencie, w tym w okresowych aktualizacjach. Aplikacja nigdy nie powinna zakładać ani nie zależeć od określonego rozmiaru segmentu, ani nie powinna podejmować próby skonfigurowania ilości pamięci dostępnej dla alokacji segmentów.

Zdarzenie GCFreeSegment_V1

W poniższej tabeli przedstawiono słowo kluczowe i poziom:

Słowo kluczowe do zgłaszania zdarzenia Poziom
GCKeyword (0x1) Informacyjne (4)

W poniższej tabeli przedstawiono informacje o zdarzeniu:

Zdarzenie Identyfikator zdarzenia Podniesione, gdy
GCFreeSegment_V1 6 Opublikowano segment odzyskiwania pamięci.

W poniższej tabeli przedstawiono dane zdarzenia:

Nazwa pola Typ danych opis
Adres win:UInt64 Adres segmentu.
ClrInstanceID win:UInt16 Unikatowy identyfikator wystąpienia środowiska CLR lub CoreCLR.

zdarzenie GCRestartEEBegin_V1

W poniższej tabeli przedstawiono słowo kluczowe i poziom:

Słowo kluczowe do zgłaszania zdarzenia Poziom
GCKeyword (0x1) Informacyjne (4)

W poniższej tabeli przedstawiono informacje o zdarzeniu:

Zdarzenie Identyfikator zdarzenia Podniesione, gdy
GCRestartEEBegin_V1 7 Rozpoczęto wznowienie zawieszenia środowiska uruchomieniowego języka wspólnego.

Brak danych zdarzenia.

zdarzenie GCRestartEEEnd_V1

W poniższej tabeli przedstawiono słowo kluczowe i poziom:

Słowo kluczowe do zgłaszania zdarzenia Poziom
GCKeyword (0x1) Informacyjne (4)

W poniższej tabeli przedstawiono informacje o zdarzeniu:

Zdarzenie Identyfikator zdarzenia: Podniesione, gdy
GCRestartEEEnd_V1 3 Wznowienie zawieszenia środowiska uruchomieniowego języka wspólnego zakończyło się.

Brak danych zdarzenia.

zdarzenie GCSuspendEE_V1

W poniższej tabeli przedstawiono słowo kluczowe i poziom:

Słowo kluczowe do zgłaszania zdarzenia Poziom
GCKeyword (0x1) Informacyjne (4)

W poniższej tabeli przedstawiono informacje o zdarzeniu:

Zdarzenie Identyfikator zdarzenia Podniesione, gdy
GCSuspendEE_V1 9 Początek zawieszenia aparatu wykonawczego do odzyskiwania pamięci.

W poniższej tabeli przedstawiono dane zdarzenia:

Nazwa pola Typ danych opis
Przyczyna win:UInt16 0x0 — inne.

0x1 — odzyskiwanie pamięci.

0x2 — zamykanie domeny aplikacji.

0x3 — pitching kodu.

0x4 — zamykanie.

0x5 — debuger.

0x6 — przygotowanie do odzyskiwania pamięci.
Count win:UInt32 Liczba GC w tym czasie. Zazwyczaj po tym wystąpieniu zostanie wyświetlone kolejne zdarzenie rozpoczęcia GC, a jego liczba będzie następująca: Liczba + 1, ponieważ zwiększamy indeks GC podczas odzyskiwania pamięci.
ClrInstanceID win:UInt16 Unikatowy identyfikator wystąpienia środowiska CLR lub CoreCLR.

zdarzenie GCSuspendEEEnd_V1

W poniższej tabeli przedstawiono słowo kluczowe i poziom:

Słowo kluczowe do zgłaszania zdarzenia Poziom
GCKeyword (0x1) Informacyjne (4)

W poniższej tabeli przedstawiono informacje o zdarzeniu:

Zdarzenie Identyfikator zdarzenia Podniesione, gdy
GCSuspendEEEnd_V1 8 Koniec zawieszenia aparatu wykonawczego do odzyskiwania pamięci.

Brak danych zdarzenia.

Zdarzenie GCAllocationTick_V2

W poniższej tabeli przedstawiono słowo kluczowe i poziom:

Słowo kluczowe do zgłaszania zdarzenia Poziom
GCKeyword (0x1) Informacyjne (4)

W poniższej tabeli przedstawiono informacje o zdarzeniu:

Zdarzenie Identyfikator zdarzenia Podniesione, gdy
GCAllocationTick_V2 10 Za każdym razem, gdy przydzielono około 100 KB na stertę obiektu. Oznacza to, ŻE SOH, LOH i POH gromadzą swoje przydzielone bajty oddzielnie. W konfiguracji GC serwera jest to wykonywane na stertę.

W poniższej tabeli przedstawiono dane zdarzenia:

Nazwa pola Typ danych opis
AlokacjaAmount win:UInt32 Rozmiar alokacji w bajtach. Ta wartość jest dokładna dla alokacji, które są mniejsze niż długość ULONG (4,294,967,295 bajtów). Jeśli alokacja jest większa, to pole zawiera obciętą wartość. Służy AllocationAmount64 do bardzo dużych alokacji.
AllocationKind win:UInt32 0x0 — mała alokacja obiektów (alokacja znajduje się w małej stercie obiektów).
0x1 — alokacja dużych obiektów (alokacja znajduje się w dużym stercie obiektów).
0x2 — przypięta alokacja obiektu (alokacja znajduje się w przypiętej stercie obiektu).
ClrInstanceID win:UInt16 Unikatowy identyfikator wystąpienia środowiska CLR lub CoreCLR.
AllocationAmount64 win:UInt64 Rozmiar alokacji w bajtach. Ta wartość jest dokładna w przypadku bardzo dużych alokacji.
Typeid win:Wskaźnik Adres tabeli MethodTable. Jeśli podczas tego zdarzenia przydzielono kilka typów obiektów, jest to adres tabeli MethodTable, która odpowiada ostatniemu przydzielonym obiektowi (obiekt, który spowodował przekroczenie progu 100 KB).
TypeName win:UnicodeString Nazwa przydzielonego typu. Jeśli podczas tego zdarzenia przydzielono kilka typów obiektów, jest to typ ostatniego przydzielonego obiektu (obiekt, który spowodował przekroczenie progu 100 KB).
HeapIndex win:UInt32 Sterta, w której przydzielono obiekt. Ta wartość to 0 (zero) podczas uruchamiania z odzyskiwaniem pamięci stacji roboczej.

zdarzenie GCAllocationTick_V3

W poniższej tabeli przedstawiono słowo kluczowe i poziom:

Słowo kluczowe do zgłaszania zdarzenia Poziom
GCKeyword (0x1) Informacyjne (4)

W poniższej tabeli przedstawiono informacje o zdarzeniu:

Zdarzenie Identyfikator zdarzenia Podniesione, gdy
GCAllocationTick_V2 10 Za każdym razem, gdy przydzielono około 100 KB na stertę obiektu. Oznacza to, ŻE SOH, LOH i POH gromadzą swoje przydzielone bajty oddzielnie. W konfiguracji GC serwera jest to wykonywane na stertę.

W poniższej tabeli przedstawiono dane zdarzenia:

Nazwa pola Typ danych opis
AlokacjaAmount win:UInt32 Rozmiar alokacji w bajtach. Ta wartość jest dokładna dla alokacji, które są mniejsze niż długość ULONG (4,294,967,295 bajtów). Jeśli alokacja jest większa, to pole zawiera obciętą wartość. Służy AllocationAmount64 do bardzo dużych alokacji.
AllocationKind win:UInt32 0x0 — mała alokacja obiektów (alokacja znajduje się w małej stercie obiektów).
0x1 — alokacja dużych obiektów (alokacja znajduje się w dużym stercie obiektów).
0x2 — przypięta alokacja obiektu (alokacja znajduje się w przypiętej stercie obiektu).
ClrInstanceID win:UInt16 Unikatowy identyfikator wystąpienia środowiska CLR lub CoreCLR.
AllocationAmount64 win:UInt64 Rozmiar alokacji w bajtach. Ta wartość jest dokładna w przypadku bardzo dużych alokacji.
Typeid win:Wskaźnik Adres tabeli MethodTable. Jeśli podczas tego zdarzenia przydzielono kilka typów obiektów, jest to adres tabeli MethodTable, która odpowiada ostatniemu przydzielonym obiektowi (obiekt, który spowodował przekroczenie progu 100 KB).
TypeName win:UnicodeString Nazwa przydzielonego typu. Jeśli podczas tego zdarzenia przydzielono kilka typów obiektów, jest to typ ostatniego przydzielonego obiektu (obiekt, który spowodował przekroczenie progu 100 KB).
HeapIndex win:UInt32 Sterta, w której przydzielono obiekt. Ta wartość to 0 (zero) podczas uruchamiania z odzyskiwaniem pamięci stacji roboczej.
Adres win:Wskaźnik Adres ostatniego przydzielonego obiektu.

zdarzenie GCFinalizersBegin_V1

W poniższej tabeli przedstawiono słowo kluczowe i poziom:

Słowo kluczowe do zgłaszania zdarzenia Poziom
GCKeyword (0x1) Informacyjne (4)

W poniższej tabeli przedstawiono informacje o zdarzeniu:

Zdarzenie Identyfikator zdarzenia Podniesione, gdy
GCFinalizersBegin_V1 14 Początek uruchamiania finalizatorów.

Brak danych zdarzenia.

zdarzenie GCFinalizersEnd_V1

W poniższej tabeli przedstawiono słowo kluczowe i poziom:

Słowo kluczowe do zgłaszania zdarzenia Poziom
GCKeyword (0x1) Informacyjne (4)

W poniższej tabeli przedstawiono informacje o zdarzeniu:

Zdarzenie Identyfikator zdarzenia Podniesione, gdy
GCFinalizersEnd_V1 13 Koniec uruchomionych finalizatorów.

W poniższej tabeli przedstawiono dane zdarzenia:

Nazwa pola Typ danych opis
Count win:UInt32 Liczba finalizatorów, które zostały uruchomione.
ClrInstanceID win:UInt16 Unikatowy identyfikator wystąpienia środowiska CLR lub CoreCLR.

Zdarzenie GCCreateConcurrentThread_V1

W poniższej tabeli przedstawiono słowo kluczowe i poziom:

Słowo kluczowe do zgłaszania zdarzenia Poziom
GCKeyword (0x1) Informacyjne (4)
ThreadingKeyword (0x10000) Informacyjne (4)

W poniższej tabeli przedstawiono informacje o zdarzeniu:

Zdarzenie Identyfikator zdarzenia Podniesione, gdy
GCCreateConcurrentThread_V1 11 Utworzono współbieżny wątek odzyskiwania pamięci.

Brak danych zdarzenia.

Zdarzenie GCTerminateConcurrentThread_V1

W poniższej tabeli przedstawiono słowo kluczowe i poziom:

Słowo kluczowe do zgłaszania zdarzenia Poziom
GCKeyword (0x1) Informacyjne (4)
ThreadingKeyword (0x10000) Informacyjne (4)

W poniższej tabeli przedstawiono informacje o zdarzeniu:

Zdarzenie Identyfikator zdarzenia Podniesione, gdy
GCTerminateConcurrentThread_V1 12 Równoczesny wątek odzyskiwania pamięci został zakończony.

Brak danych zdarzenia.

Zobacz też