Udostępnij za pośrednictwem


Zdarzenia odzyskiwania pamięci środowiska uruchomieniowego platformy .NET

Zdarzenia opisane w tym artykule 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 itp. Aby uzyskać więcej informacji na temat używania tych zdarzeń do celów diagnostycznych, zobacz Rejestrowanie i śledzenie aplikacji platformy .NET

zdarzenie GCStart_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
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.
Depth win:UInt32 Zbierane jest pokolenie.
Reason win:UInt32 Dlaczego odzyskiwanie pamięci zostało wyzwolone:

0x0 - Alokacja sterty małych obiektów.

0x1 -Wywołane.

0x2 - Mała ilość pamięci.

0x3 -Pusty.

0x4 - Alokacja sterty dużych obiektów.

0x5 - Za mało miejsca (dla małego sterta obiektu).

0x6 - Brak miejsca (dla dużych stert obiektów).

0x7 - Wywołane, ale nie wymuszone jako blokowanie.
Type win:UInt32 0x0 - Blokowanie odzyskiwania pamięci miało miejsce 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 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.
Depth win:UInt32 Generacja, która została zebrana.
ClrInstanceID win:UInt16 Unikatowy identyfikator wystąpienia 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.
FinalizationPromotedSize win:UInt64 Całkowity rozmiar (w bajtach) obiektów gotowych do finalizacji.
FinalizationPromotedCount 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 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
Address win:UInt64 Adres segmentu.
Size win:UInt64 Rozmiar segmentu.
Type 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 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
Address win:UInt64 Adres segmentu.
ClrInstanceID win:UInt16 Unikatowy identyfikator wystąpienia 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.

To zdarzenie nie ma żadnych 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ę.

To zdarzenie nie ma żadnych danych zdarzenia.

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.

To zdarzenie nie ma żadnych danych zdarzenia.

zdarzenie GCSuspendEEBegin_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
GCSuspendEEBegin_V1 9 Początek zawieszenia aparatu wykonawczego do odzyskiwania pamięci.
Nazwa pola Typ danych opis
Count win:UInt32 Nth wyrzucanie pamięci.
Reason win:UInt32 Przyczyna zawieszenia EE.

0x0: Wstrzymaj dla innego

0x1: Wstrzymaj dla GC.

0x2: Wstrzymaj zamknięcie domeny aplikacji.

0x3: wstrzymywanie w przypadku pitchingu kodu.

0x4: Wstrzymaj zamknięcie.

0x5: Wstrzymaj debuger.

0x6: Wstrzymaj dla narzędzia GC Prep.

0x7: Wstrzymywanie w przypadku zamiatania debugera

zdarzenie GCAllocationTick_V3

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

Słowo kluczowe do zgłaszania zdarzenia Poziom
GCKeyword (0x1) Pełne (5)

W poniższej tabeli przedstawiono informacje o zdarzeniu:

Zdarzenie Identyfikator zdarzenia Podniesione, gdy
GCAllocationTick_V3 10 Za każdym razem, gdy przydzielono około 100 KB.

W poniższej tabeli przedstawiono dane zdarzenia:

Nazwa pola Typ danych opis
AllocationAmount 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 obiektu (alokacja znajduje się w małym stercie obiektu).

0x1 - Alokacja dużych obiektów (alokacja znajduje się w dużym stercie obiektu).
AllocationAmount64 win:UInt64 Rozmiar alokacji w bajtach. Ta wartość jest dokładna w przypadku bardzo dużych alokacji.
TypeId win:Pointer 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.
Address win:Pointer Adres ostatniego przydzielonego obiektu.
ClrInstanceID win:UInt16 Unikatowy identyfikator wystąpienia 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.

To zdarzenie nie ma żadnych 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.

To zdarzenie nie ma żadnych danych zdarzenia.

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.

To zdarzenie nie ma żadnych 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.

SetGCHandle, zdarzenie

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

Słowo kluczowe do zgłaszania zdarzenia Poziom
GCHandleKeyword (0x2) Informacyjne (4)

W poniższej tabeli przedstawiono informacje o zdarzeniu:

Zdarzenie Identyfikator zdarzenia Podniesione, gdy
SetGCHandle 30 Ustawiono uchwyt GC.

W poniższej tabeli przedstawiono dane zdarzenia:

Nazwa pola Typ danych opis
HandleID win:Pointer Adres przydzielonego uchwytu.
ObjectID win:Pointer Adres obiektu, którego uchwyt został utworzony.
Kind win:UInt32 Typ uchwytu GC, który został ustawiony.

0x0: WeakShort

0x1: WeakLong

0x2:Silne

0x3:Przypięte

0x4:Zmiennej

0x5: RefCounted

0x6:Zależne

0x7: AsyncPinned

0x8: SizeRef
Generation win:UInt32 Generowanie obiektu, którego uchwyt został utworzony.
AppDomainID win:UInt64 Identyfikator domeny aplikacji.
ClrInstanceID win:UInt16 Unikatowy identyfikator wystąpienia coreCLR.

Zdarzenie DestroyGCHandle

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

Słowo kluczowe do zgłaszania zdarzenia Poziom
GCHandleKeyword (0x2) Informacyjne (4)

W poniższej tabeli przedstawiono informacje o zdarzeniu:

Zdarzenie Identyfikator zdarzenia Podniesione, gdy
DestroyGCHandle 31 Uchwyt GC jest niszczony.

W poniższej tabeli przedstawiono dane zdarzenia:

Nazwa pola Typ danych opis
HandleID win:Pointer Adres zniszczonego uchwytu.
ClrInstanceID win:UInt16 Unikatowy identyfikator wystąpienia coreCLR.

Zdarzenie PinObjectAtGCTime

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

Słowo kluczowe do zgłaszania zdarzenia Poziom
GCKeyword (0x1) Pełne (5)

W poniższej tabeli przedstawiono informacje o zdarzeniu:

Zdarzenie Identyfikator zdarzenia Podniesione, gdy
PinObjectAtGCTime 33 Obiekt został przypięty podczas GC.

W poniższej tabeli przedstawiono dane zdarzenia:

Nazwa pola Typ danych opis
HandleID win:Pointer Adres uchwytu.
ObjectID win:Pointer Adres przypiętego obiektu.
ObjectSize win:UInt64 Rozmiar przypiętego obiektu.
TypeName win:UnicodeString Nazwa typu przypiętego obiektu.
ClrInstanceID win:UInt16 Unikatowy identyfikator wystąpienia coreCLR.

Zdarzenie GCTriggered

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

Słowo kluczowe do zgłaszania zdarzenia Poziom
GCKeyword (0x1) Pełne (5)

W poniższej tabeli przedstawiono informacje o zdarzeniu:

Zdarzenie Identyfikator zdarzenia Podniesione, gdy
GCTriggered 35 Wyzwolono GC.

W poniższej tabeli przedstawiono dane zdarzenia:

Nazwa pola Typ danych opis
Reason win:UInt32 Przyczyna wyzwolenia GC.

0x0: AllocSmall

0x1:Wywołane

0x2: LowMemory

0x3:Pusty

0x4: AllocLarge

0x5: OutOfSpaceSmallObjectHeap

0x6: OutOfSpaceLargeObjectHeap

0x7:InducedNoForce

0x8:Stres

0x9: InducedLowMemory
ClrInstanceID win:UInt16 Unikatowy identyfikator wystąpienia coreCLR.

Zdarzenie IncreaseMemoryPressure

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

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

W poniższej tabeli przedstawiono informacje o zdarzeniu:

Zdarzenie Identyfikator zdarzenia Podniesione, gdy
IncreaseMemoryPressure 200 Zwiększono wykorzystanie pamięci.

W poniższej tabeli przedstawiono dane zdarzenia:

Nazwa pola Typ danych opis
ClrInstanceID win:UInt16 Unikatowy identyfikator wystąpienia coreCLR.

Zdarzenie DecreaseMemoryPressure

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

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

W poniższej tabeli przedstawiono informacje o zdarzeniu:

Zdarzenie Identyfikator zdarzenia Podniesione, gdy
DecreaseMemoryPressure 201 Zmniejszono wykorzystanie pamięci.

W poniższej tabeli przedstawiono dane zdarzenia:

Nazwa pola Typ danych opis
BytesFreed win:UInt32 Bajty uwolnione.
ClrInstanceID win:UInt16 Unikatowy identyfikator wystąpienia coreCLR.

Zdarzenie GCMarkWithType

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

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

W poniższej tabeli przedstawiono informacje o zdarzeniu:

Zdarzenie Identyfikator zdarzenia Podniesione, gdy
GCMarkWithType 202 Katalog główny GC został oznaczony podczas fazy znacznika GC.

W poniższej tabeli przedstawiono dane zdarzenia:

Nazwa pola Typ danych opis
HeapNum win:UInt32 Numer sterta.
ClrInstanceID win:UInt16 Unikatowy identyfikator wystąpienia coreCLR.
Type win:UInt32 Typ główny GC.

0x0:Stosu

0x1:Finalizatorów

0x2:Obsługi

0x3:Starsze

0x4: SizeRef

0x5:Przepełnienie

Bytes win:UInt64 Liczba oznaczonych bajtów.

zdarzenie GCJoin_V2

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

Słowo kluczowe do zgłaszania zdarzenia Poziom
GCKeyword (0x1) Pełne (5)

W poniższej tabeli przedstawiono informacje o zdarzeniu:

Zdarzenie Identyfikator zdarzenia Podniesione, gdy
GCJoin_V2 203 Sprzężony wątek GC.

W poniższej tabeli przedstawiono dane zdarzenia:

Nazwa pola Typ danych opis
Heap win:UInt32 Numer sterta
JoinTime win:UInt32 Wskazuje, czy to zdarzenie jest uruchamiane na początku sprzężenia, czy na końcu sprzężenia (0x0 na początek sprzężenia, 0x1 na koniec sprzężenia)
JoinType win:UInt32 Typ sprzężenia.

0x0: Ostatnie sprzężenia

0x1:Dołączyć

0x2:Ponownie uruchomić

0x3: Pierwsze sprzężenia odwrotne

0x4: Sprzężenia odwrotne

ClrInstanceID win:UInt16 Unikatowy identyfikator wystąpienia coreCLR.