Události Trasování událostí pro Windows uvolnění paměti
Tyto události shromažďují informace týkající se uvolňování paměti. Pomáhají při diagnostice a ladění, včetně určení, kolikrát bylo provedeno uvolňování paměti, kolik paměti bylo uvolněno během uvolňování paměti atd.
Tato kategorie se skládá z následujících událostí:
- událost GCStart_V1
- událost GCEnd_V1
- událost GCHeapStats_V1
- událost GCHeapStats_V2
- událost GCCreateSegment_V1
- událost GCFreeSegment_V1
- událost GCRestartEEBegin_V1
- událost GCRestartEEEnd_V1
- událost GCSuspendEE_V1
- událost GCSuspendEEEnd_V1
- událost GCAllocationTick_V2
- událost GCAllocationTick_V3
- událost GCFinalizersBegin_V1
- událost GCFinalizersEnd_V1
- událost GCCreateConcurrentThread_V1
- událost GCTerminateConcurrentThread_V1
událost GCStart_V1
Následující tabulka ukazuje klíčové slovo a úroveň. Další informace naleznete v tématu CLR ETW klíčová slova a úrovně.
Klíčové slovo pro vyvolání události | Level |
---|---|
GCKeyword (0x1) |
Informační (4) |
Následující tabulka obsahuje informace o události:
Událost | ID události | Vyvolání při |
---|---|---|
GCStart_V1 |
0 | Spustilo se uvolňování paměti. |
V následující tabulce jsou uvedena data události:
Název pole | Datový typ | Popis |
---|---|---|
Count | win:UInt32 | N. uvolňování paměti. |
Hloubka | win:UInt32 | Generace, která se shromažďuje. |
Důvod | win:UInt32 | Proč se aktivovalo uvolňování paměti: 0x0 – přidělení haldy malého objektu 0x1 - vyvolána. 0x2 – nedostatek paměti. 0x3 – prázdné. 0x4 – přidělení haldy velkého objektu 0x5 – nedostatek místa (pro malou haldu objektu). 0x6 – nedostatek místa (pro haldu velkého objektu). 0x7 – vyvolána, ale není vynucena jako blokování. 0x8 - zátěžové testování. 0x9 - Vlákno finalizátoru pozorované, že proces je v nedostatku paměti a vyvolá GC. 0x10 - Uživatelský kód indukovaný GC a požádal ho, aby byl komprimující GC. |
Typ | win:UInt32 | 0x0 – Blokování uvolňování paměti došlo mimo uvolňování paměti na pozadí. 0x1 – uvolňování paměti na pozadí 0x2 – Blokování uvolňování paměti došlo během uvolňování paměti na pozadí. |
ClrInstanceID | win:UInt16 | Jedinečné ID instance CLR nebo CoreCLR. |
událost GCEnd_V1
Následující tabulka ukazuje klíčové slovo a úroveň:
Klíčové slovo pro vyvolání události | Level |
---|---|
GCKeyword (0x1) |
Informační (4) |
Následující tabulka obsahuje informace o události:
Událost | ID události | Vyvolání při |
---|---|---|
GCEnd_V1 |
2 | Uvolňování paměti skončilo. |
V následující tabulce jsou uvedena data události:
Název pole | Datový typ | Popis |
---|---|---|
Count | win:UInt32 | N. uvolňování paměti. |
Hloubka | win:UInt32 | Generace, která byla shromážděna. |
ClrInstanceID | win:UInt16 | Jedinečné ID instance CLR nebo CoreCLR. |
událost GCHeapStats_V1
Následující tabulka ukazuje klíčové slovo a úroveň:
Klíčové slovo pro vyvolání události | Level |
---|---|
GCKeyword (0x1) |
Informační (4) |
Následující tabulka obsahuje informace o události:
Událost | ID události | Popis |
---|---|---|
GCHeapStats_V1 |
4 | Zobrazuje statistiku haldy na konci každé uvolňování paměti. |
V následující tabulce jsou uvedena data události:
Název pole | Datový typ | Popis |
---|---|---|
GenerationSize0 | win:UInt64 | Velikost paměti generace 0 v bajtech. |
TotalPromotedSize0 | win:UInt64 | Počet bajtů, které jsou povýšeny z generace 0 na generaci 1. |
GenerationSize1 | win:UInt64 | Velikost paměti generace 1 v bajtech. |
TotalPromotedSize1 | win:UInt64 | Počet bajtů, které jsou povýšeny z generace 1 na generaci 2. |
GenerationSize2 | win:UInt64 | Velikost paměti generace 2 v bajtech. |
TotalPromotedSize2 | win:UInt64 | Počet bajtů, které přežily v generaci 2 po poslední kolekci. |
GenerationSize3 | win:UInt64 | Velikost haldy velkého objektu v bajtech. |
TotalPromotedSize3 | win:UInt64 | Počet bajtů, které přežily ve velké haldě objektu po poslední kolekci. |
FinalizacePromotedSize | win:UInt64 | Celková velikost objektů, které jsou připravené k dokončení, v bajtech. |
FinalizationPromotedCount | win:UInt64 | Počet objektů, které jsou připravené k dokončení. |
PinnedObjectCount | win:UInt32 | Počet připnutých (nepotřebných) objektů. |
SinkBlockCount | win:UInt32 | Počet využitých bloků synchronizace. |
GCHandleCount | win:UInt32 | Počet popisovačů uvolňování paměti, které se používají. |
ClrInstanceID | win:UInt16 | Jedinečné ID instance CLR nebo CoreCLR. |
událost GCHeapStats_V2
Následující tabulka ukazuje klíčové slovo a úroveň:
Klíčové slovo pro vyvolání události | Level |
---|---|
GCKeyword (0x1) |
Informační (4) |
Následující tabulka obsahuje informace o události:
Událost | ID události | Popis |
---|---|---|
GCHeapStats_V2 |
4 | Zobrazuje statistiku haldy na konci každé uvolňování paměti. |
V následující tabulce jsou uvedena data události:
Název pole | Datový typ | Popis |
---|---|---|
GenerationSize0 | win:UInt64 | Velikost paměti generace 0 v bajtech. |
TotalPromotedSize0 | win:UInt64 | Počet bajtů, které jsou povýšeny z generace 0 na generaci 1. |
GenerationSize1 | win:UInt64 | Velikost paměti generace 1 v bajtech. |
TotalPromotedSize1 | win:UInt64 | Počet bajtů, které jsou povýšeny z generace 1 na generaci 2. |
GenerationSize2 | win:UInt64 | Velikost paměti generace 2 v bajtech. |
TotalPromotedSize2 | win:UInt64 | Počet bajtů, které přežily v generaci 2 po poslední kolekci. |
GenerationSize3 | win:UInt64 | Velikost haldy velkého objektu v bajtech. |
TotalPromotedSize3 | win:UInt64 | Počet bajtů, které přežily ve velké haldě objektu po poslední kolekci. |
FinalizacePromotedSize | win:UInt64 | Celková velikost objektů, které jsou připravené k dokončení, v bajtech. |
FinalizationPromotedCount | win:UInt64 | Počet objektů, které jsou připravené k dokončení. |
PinnedObjectCount | win:UInt32 | Počet připnutých (nepotřebných) objektů. |
SinkBlockCount | win:UInt32 | Počet využitých bloků synchronizace. |
GCHandleCount | win:UInt32 | Počet popisovačů uvolňování paměti, které se používají. |
ClrInstanceID | win:UInt16 | Jedinečné ID instance CLR nebo CoreCLR. |
GenerationSize4 | win:UInt64 | Velikost haldy připnutého objektu v bajtech. |
TotalPromotedSize4 | win:UInt64 | Počet bajtů, které přežily v haldě připnutého objektu po poslední kolekci. |
událost GCCreateSegment_V1
Následující tabulka ukazuje klíčové slovo a úroveň:
Klíčové slovo pro vyvolání události | Level |
---|---|
GCKeyword (0x1) |
Informační (4) |
Následující tabulka obsahuje informace o události:
Událost | ID události | Vyvolání při |
---|---|---|
GCCreateSegment_V1 |
5 | Byl vytvořen nový segment uvolňování paměti. Kromě toho, pokud je trasování povolené u již spuštěného procesu, je tato událost vyvolána pro každý existující segment. |
V následující tabulce jsou uvedena data události:
Název pole | Datový typ | Popis |
---|---|---|
Adresa | win:UInt64 | Adresa segmentu. |
Velikost | win:UInt64 | Velikost segmentu. |
Typ | win:UInt32 | 0x0 – malá halda objektu. 0x1 – velká halda objektu. 0x2 – halda jen pro čtení. |
ClrInstanceID | win:UInt16 | Jedinečné ID instance CLR nebo CoreCLR. |
Všimněte si, že velikost segmentů přidělených systémem uvolňování paměti je specifická pro implementaci a může se kdykoli změnit, včetně pravidelných aktualizací. Vaše aplikace by nikdy neměla provádět předpoklady týkající se konkrétní velikosti segmentu ani záviset na ní, ani by se neměla pokoušet konfigurovat množství paměti dostupné pro přidělení segmentů.
událost GCFreeSegment_V1
Následující tabulka ukazuje klíčové slovo a úroveň:
Klíčové slovo pro vyvolání události | Level |
---|---|
GCKeyword (0x1) |
Informační (4) |
Následující tabulka obsahuje informace o události:
Událost | ID události | Vyvolání při |
---|---|---|
GCFreeSegment_V1 |
6 | Byl vydán segment uvolňování paměti. |
V následující tabulce jsou uvedena data události:
Název pole | Datový typ | Popis |
---|---|---|
Adresa | win:UInt64 | Adresa segmentu. |
ClrInstanceID | win:UInt16 | Jedinečné ID instance CLR nebo CoreCLR. |
událost GCRestartEEBegin_V1
Následující tabulka ukazuje klíčové slovo a úroveň:
Klíčové slovo pro vyvolání události | Level |
---|---|
GCKeyword (0x1) |
Informační (4) |
Následující tabulka obsahuje informace o události:
Událost | ID události | Vyvolání při |
---|---|---|
GCRestartEEBegin_V1 |
7 | Zahájilo se obnovení z pozastavení modulu CLR (Common Language Runtime). |
Žádná data událostí.
událost GCRestartEEEnd_V1
Následující tabulka ukazuje klíčové slovo a úroveň:
Klíčové slovo pro vyvolání události | Level |
---|---|
GCKeyword (0x1) |
Informační (4) |
Následující tabulka obsahuje informace o události:
Událost | ID události | Vyvolání při |
---|---|---|
GCRestartEEEnd_V1 |
3 | Obnovení z pozastavení modulu CLR (Common Language Runtime) skončilo. |
Žádná data událostí.
událost GCSuspendEE_V1
Následující tabulka ukazuje klíčové slovo a úroveň:
Klíčové slovo pro vyvolání události | Level |
---|---|
GCKeyword (0x1) |
Informační (4) |
Následující tabulka obsahuje informace o události:
Událost | ID události | Vyvolání při |
---|---|---|
GCSuspendEE_V1 |
9 | Začátek pozastavení prováděcího modulu pro uvolňování paměti. |
V následující tabulce jsou uvedena data události:
Název pole | Datový typ | Popis |
---|---|---|
Důvod | win:UInt16 | 0x0 - jiné. 0x1 – uvolňování paměti. 0x2 – vypnutí domény aplikace 0x3 - rozhazování kódu. 0x4 – Vypnutí. 0x5 – ladicí program. 0x6 – příprava na uvolňování paměti. |
Počet | win:UInt32 | Počet GC v době. Obvykle by se po tomto stavu zobrazila další událost zahájení uvolňování paměti a jeho počet by byl tento Počet + 1, protože během uvolňování paměti zvýšíme index uvolňování paměti. |
ClrInstanceID | win:UInt16 | Jedinečné ID instance CLR nebo CoreCLR. |
událost GCSuspendEEEnd_V1
Následující tabulka ukazuje klíčové slovo a úroveň:
Klíčové slovo pro vyvolání události | Level |
---|---|
GCKeyword (0x1) |
Informační (4) |
Následující tabulka obsahuje informace o události:
Událost | ID události | Vyvolání při |
---|---|---|
GCSuspendEEEnd_V1 |
8 | Konec pozastavení prováděcího modulu pro uvolňování paměti. |
Žádná data událostí.
událost GCAllocationTick_V2
Následující tabulka ukazuje klíčové slovo a úroveň:
Klíčové slovo pro vyvolání události | Level |
---|---|
GCKeyword (0x1) |
Informační (4) |
Následující tabulka obsahuje informace o události:
Událost | ID události | Vyvolání při |
---|---|---|
GCAllocationTick_V2 |
10 | Pokaždé, když je přiděleno přibližně 100 kB na haldu objektu. To znamená, SOH, LOH a POH hromadí své přidělené bajty samostatně. V serveru GC se to provádí na haldu. |
V následující tabulce jsou uvedena data události:
Název pole | Datový typ | Popis |
---|---|---|
AllocationAmount | win:UInt32 | Velikost přidělení vbajch Tato hodnota je přesná pro přidělení, která jsou menší než délka ULONG (4 294 967 295 bajtů). Pokud je přidělení větší, obsahuje toto pole zkrácenou hodnotu. Používá se AllocationAmount64 pro velmi velké přidělení. |
AllocationKind | win:UInt32 | 0x0 – přidělení malého objektu (přidělení je v malé haldě objektu). 0x1 – přidělení velkého objektu (přidělení je v haldě velkého objektu). 0x2 – Přidělení připnutého objektu (přidělení je v haldě připnutého objektu). |
ClrInstanceID | win:UInt16 | Jedinečné ID instance CLR nebo CoreCLR. |
AllocationAmount64 | win:UInt64 | Velikost přidělení vbajch Tato hodnota je přesná pro velmi velké přidělení. |
Typeid | win:Pointer | Adresa MethodTable. Pokud je během této události přiděleno několik typů objektů, jedná se o adresu MethodTable odpovídající poslednímu přidělenému objektu (objekt, který způsobil překročení prahové hodnoty 100 kB). |
TypeName | win:UnicodeString | Název přiděleného typu. Pokud je během této události přiděleno několik typů objektů, jedná se o typ posledního přiděleného objektu (objekt, který způsobil překročení prahové hodnoty 100 kB). |
HeapIndex | win:UInt32 | Halda, ve které byl objekt přidělen. Tato hodnota je 0 (nula) při spuštění s uvolňováním paměti pracovní stanice. |
událost GCAllocationTick_V3
Následující tabulka ukazuje klíčové slovo a úroveň:
Klíčové slovo pro vyvolání události | Level |
---|---|
GCKeyword (0x1) |
Informační (4) |
Následující tabulka obsahuje informace o události:
Událost | ID události | Vyvolání při |
---|---|---|
GCAllocationTick_V2 |
10 | Pokaždé, když je přiděleno přibližně 100 kB na haldu objektu. To znamená, SOH, LOH a POH hromadí své přidělené bajty samostatně. V serveru GC se to provádí na haldu. |
V následující tabulce jsou uvedena data události:
Název pole | Datový typ | Popis |
---|---|---|
AllocationAmount | win:UInt32 | Velikost přidělení vbajch Tato hodnota je přesná pro přidělení, která jsou menší než délka ULONG (4 294 967 295 bajtů). Pokud je přidělení větší, obsahuje toto pole zkrácenou hodnotu. Používá se AllocationAmount64 pro velmi velké přidělení. |
AllocationKind | win:UInt32 | 0x0 – přidělení malého objektu (přidělení je v malé haldě objektu). 0x1 – přidělení velkého objektu (přidělení je v haldě velkého objektu). 0x2 – Přidělení připnutého objektu (přidělení je v haldě připnutého objektu). |
ClrInstanceID | win:UInt16 | Jedinečné ID instance CLR nebo CoreCLR. |
AllocationAmount64 | win:UInt64 | Velikost přidělení vbajch Tato hodnota je přesná pro velmi velké přidělení. |
Typeid | win:Pointer | Adresa MethodTable. Pokud je během této události přiděleno několik typů objektů, jedná se o adresu MethodTable odpovídající poslednímu přidělenému objektu (objekt, který způsobil překročení prahové hodnoty 100 kB). |
TypeName | win:UnicodeString | Název přiděleného typu. Pokud je během této události přiděleno několik typů objektů, jedná se o typ posledního přiděleného objektu (objekt, který způsobil překročení prahové hodnoty 100 kB). |
HeapIndex | win:UInt32 | Halda, ve které byl objekt přidělen. Tato hodnota je 0 (nula) při spuštění s uvolňováním paměti pracovní stanice. |
Adresa | win:Pointer | Adresa posledního přiděleného objektu. |
událost GCFinalizersBegin_V1
Následující tabulka ukazuje klíčové slovo a úroveň:
Klíčové slovo pro vyvolání události | Level |
---|---|
GCKeyword (0x1) |
Informační (4) |
Následující tabulka obsahuje informace o události:
Událost | ID události | Vyvolání při |
---|---|---|
GCFinalizersBegin_V1 |
14 | Začátek spuštění finalizačních metod. |
Žádná data událostí.
událost GCFinalizersEnd_V1
Následující tabulka ukazuje klíčové slovo a úroveň:
Klíčové slovo pro vyvolání události | Level |
---|---|
GCKeyword (0x1) |
Informační (4) |
Následující tabulka obsahuje informace o události:
Událost | ID události | Vyvolání při |
---|---|---|
GCFinalizersEnd_V1 |
13 | Konec běhu finalizátorů. |
V následující tabulce jsou uvedena data události:
Název pole | Datový typ | Popis |
---|---|---|
Count | win:UInt32 | Počet spuštěných finalizátorů. |
ClrInstanceID | win:UInt16 | Jedinečné ID instance CLR nebo CoreCLR. |
událost GCCreateConcurrentThread_V1
Následující tabulka ukazuje klíčové slovo a úroveň:
Klíčové slovo pro vyvolání události | Level |
---|---|
GCKeyword (0x1) |
Informační (4) |
ThreadingKeyword (0x10000) |
Informační (4) |
Následující tabulka obsahuje informace o události:
Událost | ID události | Vyvolání při |
---|---|---|
GCCreateConcurrentThread_V1 |
11 | Bylo vytvořeno souběžné vlákno uvolňování paměti. |
Žádná data událostí.
událost GCTerminateConcurrentThread_V1
Následující tabulka ukazuje klíčové slovo a úroveň:
Klíčové slovo pro vyvolání události | Level |
---|---|
GCKeyword (0x1) |
Informační (4) |
ThreadingKeyword (0x10000) |
Informační (4) |
Následující tabulka obsahuje informace o události:
Událost | ID události | Vyvolání při |
---|---|---|
GCTerminateConcurrentThread_V1 |
12 | Souběžné vlákno uvolňování paměti bylo ukončeno. |
Žádná data událostí.