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
- Zdarzenie GCEnd_V1
- zdarzenie GCHeapStats_V1
- zdarzenie GCHeapStats_V2
- zdarzenie GCCreateSegment_V1
- Zdarzenie GCFreeSegment_V1
- zdarzenie GCRestartEEBegin_V1
- zdarzenie GCRestartEEEnd_V1
- zdarzenie GCSuspendEE_V1
- zdarzenie GCSuspendEEEnd_V1
- Zdarzenie GCAllocationTick_V2
- zdarzenie GCAllocationTick_V3
- zdarzenie GCFinalizersBegin_V1
- zdarzenie GCFinalizersEnd_V1
- Zdarzenie GCCreateConcurrentThread_V1
- Zdarzenie GCTerminateConcurrentThread_V1
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.