События трассировки мусора
Эти события собирают сведения, относящиеся к сборке мусора. Они помогают в диагностике и отладке, в том числе определить, сколько раз выполнялась сборка мусора, сколько памяти было освобождено во время сборки мусора и т. д.
Эта категория состоит из следующих событий:
- события
GCStart_V1 - события
GCEnd_V1 - GCHeapStats_V1 события
- события
GCHeapStats_V2 - GCCreateSegment_V1 события
- GCFreeSegment_V1 события
- событий
GCRestartEEBegin_V1 - события
GCRestartEEEnd_V1 - GCSuspendEE_V1 события
- GCSuspendEEEnd_V1 события
- GCAllocationTick_V2 события
- GCAllocationTick_V3 события
- GCFinalizersBegin_V1 события
- GCFinalizersEnd_V1 события
- GCCreateConcurrentThread_V1 события
- GCTerminateConcurrentThread_V1 события
Событие GCStart_V1
В следующей таблице показано ключевое слово и уровень. Дополнительные сведения см. в разделе ключевых слов и уровней среды CLR.
Ключевое слово для вызова события | Уровень |
---|---|
GCKeyword (0x1) |
Информационные (4) |
В следующей таблице показаны сведения о событии:
Событие | Идентификатор события | Возникает, когда |
---|---|---|
GCStart_V1 |
1 | Сборка мусора началась. |
В следующей таблице показаны данные о событии:
Имя поля | Тип данных | Описание |
---|---|---|
Считать | win:UInt32 | Сборка мусора n. |
Глубина | win:UInt32 | Поколение, которое собирается. |
Причина | win:UInt32 | Почему сборка мусора активируется: 0x0 — выделение кучи небольших объектов. 0x1 — индуцировано. 0x2 — низкая память. 0x3 — пусто. 0x4 — выделение кучи больших объектов. 0x5 — вне места (для кучи небольших объектов). 0x6 — вне места (для кучи больших объектов). 0x7 — индуцировано, но не принудительно в качестве блокировки. 0x8 - Стресс-тестирование. 0x9 — поток завершения, наблюдаемый процесс, находится в низкой памяти и вызывает сборку сборок. 0x10 — код пользователя, индуцированный GC, и запросил его на сжатие GC. |
Тип | win:UInt32 | 0x0. Блокировка сборки мусора произошла вне фоновой сборки мусора. 0x1 — фоновая сборка мусора. 0x2. Блокировка сборки мусора произошла во время фоновой сборки мусора. |
ClrInstanceID | win:UInt16 | Уникальный идентификатор для экземпляра СРЕДЫ CLR или CoreCLR. |
Событие GCEnd_V1
В следующей таблице показано ключевое слово и уровень:
Ключевое слово для вызова события | Уровень |
---|---|
GCKeyword (0x1) |
Информационные (4) |
В следующей таблице показаны сведения о событии:
Событие | Идентификатор события | Возникает, когда |
---|---|---|
GCEnd_V1 |
2 | Сборка мусора закончилась. |
В следующей таблице показаны данные о событии:
Имя поля | Тип данных | Описание |
---|---|---|
Считать | win:UInt32 | Сборка мусора n. |
Глубина | win:UInt32 | Поколение, которое было собрано. |
ClrInstanceID | win:UInt16 | Уникальный идентификатор для экземпляра СРЕДЫ CLR или CoreCLR. |
Событие GCHeapStats_V1
В следующей таблице показано ключевое слово и уровень:
Ключевое слово для вызова события | Уровень |
---|---|
GCKeyword (0x1) |
Информационные (4) |
В следующей таблице показаны сведения о событии:
Событие | Идентификатор события | Описание |
---|---|---|
GCHeapStats_V1 |
4 | Отображает статистику кучи в конце каждой сборки мусора. |
В следующей таблице показаны данные о событии:
Имя поля | Тип данных | Описание |
---|---|---|
GenerationSize0 | win:UInt64 | Размер памяти поколения 0 в байтах. |
TotalPromotedSize0 | win:UInt64 | Число байтов, которые повышаются с поколения 0 до поколения 1. |
GenerationSize1 | win:UInt64 | Размер памяти поколения 1 в байтах. |
TotalPromotedSize1 | win:UInt64 | Число байтов, которые повышаются с поколения 1 до поколения 2. |
GenerationSize2 | win:UInt64 | Размер памяти поколения 2 в байтах. |
TotalPromotedSize2 | win:UInt64 | Количество байтов, которые выжили в поколении 2 после последней коллекции. |
GenerationSize3 | win:UInt64 | Размер кучи большого объекта в байтах. |
TotalPromotedSize3 | win:UInt64 | Количество байтов, которые выжили в куче больших объектов после последней коллекции. |
FinalizationPromotedSize | win:UInt64 | Общий размер объектов в байтах, готовых к завершении. |
FinalizationPromotedCount | win:UInt64 | Количество объектов, готовых к завершению. |
PinnedObjectCount | win:UInt32 | Количество закрепленных (не перемещаемых) объектов. |
SinkBlockCount | win:UInt32 | Количество используемых блоков синхронизации. |
GCHandleCount | win:UInt32 | Количество используемых дескрипторов сборки мусора. |
ClrInstanceID | win:UInt16 | Уникальный идентификатор для экземпляра СРЕДЫ CLR или CoreCLR. |
Событие GCHeapStats_V2
В следующей таблице показано ключевое слово и уровень:
Ключевое слово для вызова события | Уровень |
---|---|
GCKeyword (0x1) |
Информационные (4) |
В следующей таблице показаны сведения о событии:
Событие | Идентификатор события | Описание |
---|---|---|
GCHeapStats_V2 |
4 | Отображает статистику кучи в конце каждой сборки мусора. |
В следующей таблице показаны данные о событии:
Имя поля | Тип данных | Описание |
---|---|---|
GenerationSize0 | win:UInt64 | Размер памяти поколения 0 в байтах. |
TotalPromotedSize0 | win:UInt64 | Число байтов, которые повышаются с поколения 0 до поколения 1. |
GenerationSize1 | win:UInt64 | Размер памяти поколения 1 в байтах. |
TotalPromotedSize1 | win:UInt64 | Число байтов, которые повышаются с поколения 1 до поколения 2. |
GenerationSize2 | win:UInt64 | Размер памяти поколения 2 в байтах. |
TotalPromotedSize2 | win:UInt64 | Количество байтов, которые выжили в поколении 2 после последней коллекции. |
GenerationSize3 | win:UInt64 | Размер кучи большого объекта в байтах. |
TotalPromotedSize3 | win:UInt64 | Количество байтов, которые выжили в куче больших объектов после последней коллекции. |
FinalizationPromotedSize | win:UInt64 | Общий размер объектов в байтах, готовых к завершении. |
FinalizationPromotedCount | win:UInt64 | Количество объектов, готовых к завершению. |
PinnedObjectCount | win:UInt32 | Количество закрепленных (не перемещаемых) объектов. |
SinkBlockCount | win:UInt32 | Количество используемых блоков синхронизации. |
GCHandleCount | win:UInt32 | Количество используемых дескрипторов сборки мусора. |
ClrInstanceID | win:UInt16 | Уникальный идентификатор для экземпляра СРЕДЫ CLR или CoreCLR. |
GenerationSize4 | win:UInt64 | Размер кучи закрепленного объекта в байтах. |
TotalPromotedSize4 | win:UInt64 | Количество байтов, которые выжили в кучи закрепленных объектов после последней коллекции. |
событие GCCreateSegment_V1
В следующей таблице показано ключевое слово и уровень:
Ключевое слово для вызова события | Уровень |
---|---|
GCKeyword (0x1) |
Информационные (4) |
В следующей таблице показаны сведения о событии:
Событие | Идентификатор события | Возникает, когда |
---|---|---|
GCCreateSegment_V1 |
5 | Был создан новый сегмент сборки мусора. Кроме того, если трассировка включена в процессе, который уже запущен, это событие вызывается для каждого существующего сегмента. |
В следующей таблице показаны данные о событии:
Имя поля | Тип данных | Описание |
---|---|---|
Адрес | win:UInt64 | Адрес сегмента. |
Размер | win:UInt64 | Размер сегмента. |
Тип | win:UInt32 | 0x0 — небольшая куча объектов. 0x1 — куча больших объектов. 0x2 — куча только для чтения. |
ClrInstanceID | win:UInt16 | Уникальный идентификатор для экземпляра СРЕДЫ CLR или CoreCLR. |
Обратите внимание, что размер сегментов, выделенных сборщиком мусора, зависит от реализации и в любой момент может изменяться, включая периодические обновления. Ваше приложение никогда не должно делать предположений о определенном размере сегмента или не следует пытаться настроить объем памяти, доступной для выделения сегментов.
Событие GCFreeSegment_V1
В следующей таблице показано ключевое слово и уровень:
Ключевое слово для вызова события | Уровень |
---|---|
GCKeyword (0x1) |
Информационные (4) |
В следующей таблице показаны сведения о событии:
Событие | Идентификатор события | Возникает, когда |
---|---|---|
GCFreeSegment_V1 |
6 | Выпущен сегмент сборки мусора. |
В следующей таблице показаны данные о событии:
Имя поля | Тип данных | Описание |
---|---|---|
Адрес | win:UInt64 | Адрес сегмента. |
ClrInstanceID | win:UInt16 | Уникальный идентификатор для экземпляра СРЕДЫ CLR или CoreCLR. |
Событие GCRestartEEBegin_V1
В следующей таблице показано ключевое слово и уровень:
Ключевое слово для вызова события | Уровень |
---|---|
GCKeyword (0x1) |
Информационные (4) |
В следующей таблице показаны сведения о событии:
Событие | Идентификатор события | Возникает, когда |
---|---|---|
GCRestartEEBegin_V1 |
7 | Началось возобновление приостановки среды CLR. |
Нет данных о событии.
Событие GCRestartEEEnd_V1
В следующей таблице показано ключевое слово и уровень:
Ключевое слово для вызова события | Уровень |
---|---|
GCKeyword (0x1) |
Информационные (4) |
В следующей таблице показаны сведения о событии:
Событие | Идентификатор события | Возникает, когда |
---|---|---|
GCRestartEEEnd_V1 |
3 | Возобновление приостановки среды cl language runtime завершено. |
Нет данных о событии.
Событие GCSuspendEE_V1
В следующей таблице показано ключевое слово и уровень:
Ключевое слово для вызова события | Уровень |
---|---|
GCKeyword (0x1) |
Информационные (4) |
В следующей таблице показаны сведения о событии:
Событие | Идентификатор события | Возникает, когда |
---|---|---|
GCSuspendEE_V1 |
9 | Начало приостановки подсистемы выполнения для сборки мусора. |
В следующей таблице показаны данные о событии:
Имя поля | Тип данных | Описание |
---|---|---|
Причина | win:UInt16 | 0x0 - Другие. 0x1 — сборка мусора. 0x2 — завершение работы домена приложения. 0x3 — питчинг кода. 0x4 — завершение работы. 0x5 — отладчик. 0x6 — подготовка к сборке мусора. |
Считать | win:UInt32 | Количество сборок в то время. Как правило, после этого вы увидите последующее событие запуска GC, и его число будет таким числом + 1, как мы увеличиваем индекс GC во время сборки мусора. |
ClrInstanceID | win:UInt16 | Уникальный идентификатор для экземпляра СРЕДЫ CLR или CoreCLR. |
событие GCSuspendEEEnd_V1
В следующей таблице показано ключевое слово и уровень:
Ключевое слово для вызова события | Уровень |
---|---|
GCKeyword (0x1) |
Информационные (4) |
В следующей таблице показаны сведения о событии:
Событие | Идентификатор события | Возникает, когда |
---|---|---|
GCSuspendEEEnd_V1 |
8 | Завершение приостановки подсистемы выполнения для сборки мусора. |
Нет данных о событии.
Событие GCAllocationTick_V2
В следующей таблице показано ключевое слово и уровень:
Ключевое слово для вызова события | Уровень |
---|---|
GCKeyword (0x1) |
Подробные (5) |
В следующей таблице показаны сведения о событии:
Событие | Идентификатор события | Возникает, когда |
---|---|---|
GCAllocationTick_V2 |
10 | Каждый раз выделяется приблизительно 100 КБ на кучу объектов. То есть SOH, LOH и POH накапливают свои выделенные байты отдельно. В серверной сборке выполняется на кучу. |
В следующей таблице показаны данные о событии:
Имя поля | Тип данных | Описание |
---|---|---|
AllocationAmount | win:UInt32 | Размер выделения в байтах. Это значение является точным для выделения, которые меньше длины ULONG (4 294 967 295 байт). Если выделение больше, это поле содержит усеченное значение. Используйте AllocationAmount64 для очень больших выделений. |
AllocationKind | win:UInt32 | 0x0 — выделение небольших объектов (выделение находится в небольшой куче объектов). 0x1 — выделение больших объектов (выделение находится в большой куче объектов). 0x2 — закрепленное выделение объектов (выделение находится в закрепленной куче объектов). |
ClrInstanceID | win:UInt16 | Уникальный идентификатор для экземпляра СРЕДЫ CLR или CoreCLR. |
ВыделениеAmount64 | win:UInt64 | Размер выделения в байтах. Это значение является точным для очень больших выделений. |
TypeId | win:Pointer | Адрес метода MethodTable. Если во время этого события выделено несколько типов объектов, это адрес метода MethodTable, соответствующий последнему объекту (объект, который вызвал превышение порогового значения 100 КБ). |
TypeName | win:UnicodeString | Имя выделенного типа. При наличии нескольких типов объектов, выделенных во время этого события, это тип последнего выделенного объекта (объект, который привел к превышению порогового значения 100 КБ). |
HeapIndex | win:UInt32 | Куча, в которой был выделен объект. Это значение равно 0 (ноль) при выполнении сборки мусора рабочей станции. |
Событие GCAllocationTick_V3
В следующей таблице показано ключевое слово и уровень:
Ключевое слово для вызова события | Уровень |
---|---|
GCKeyword (0x1) |
Подробные (5) |
В следующей таблице показаны сведения о событии:
Событие | Идентификатор события | Возникает, когда |
---|---|---|
GCAllocationTick_V2 |
10 | Каждый раз выделяется приблизительно 100 КБ на кучу объектов. То есть SOH, LOH и POH накапливают свои выделенные байты отдельно. В серверной сборке выполняется на кучу. |
В следующей таблице показаны данные о событии:
Имя поля | Тип данных | Описание |
---|---|---|
AllocationAmount | win:UInt32 | Размер выделения в байтах. Это значение является точным для выделения, которые меньше длины ULONG (4 294 967 295 байт). Если выделение больше, это поле содержит усеченное значение. Используйте AllocationAmount64 для очень больших выделений. |
AllocationKind | win:UInt32 | 0x0 — выделение небольших объектов (выделение находится в небольшой куче объектов). 0x1 — выделение больших объектов (выделение находится в большой куче объектов). 0x2 — закрепленное выделение объектов (выделение находится в закрепленной куче объектов). |
ClrInstanceID | win:UInt16 | Уникальный идентификатор для экземпляра СРЕДЫ CLR или CoreCLR. |
ВыделениеAmount64 | win:UInt64 | Размер выделения в байтах. Это значение является точным для очень больших выделений. |
TypeId | win:Pointer | Адрес метода MethodTable. Если во время этого события выделено несколько типов объектов, это адрес метода MethodTable, соответствующий последнему объекту (объект, который вызвал превышение порогового значения 100 КБ). |
TypeName | win:UnicodeString | Имя выделенного типа. При наличии нескольких типов объектов, выделенных во время этого события, это тип последнего выделенного объекта (объект, который привел к превышению порогового значения 100 КБ). |
HeapIndex | win:UInt32 | Куча, в которой был выделен объект. Это значение равно 0 (ноль) при выполнении сборки мусора рабочей станции. |
Адрес | win:Pointer | Адрес последнего выделенного объекта. |
Событие GCFinalizersBegin_V1
В следующей таблице показано ключевое слово и уровень:
Ключевое слово для вызова события | Уровень |
---|---|
GCKeyword (0x1) |
Информационные (4) |
В следующей таблице показаны сведения о событии:
Событие | Идентификатор события | Возникает, когда |
---|---|---|
GCFinalizersBegin_V1 |
14 | Начало выполнения методов завершения. |
Нет данных о событии.
событие GCFinalizersEnd_V1
В следующей таблице показано ключевое слово и уровень:
Ключевое слово для вызова события | Уровень |
---|---|
GCKeyword (0x1) |
Информационные (4) |
В следующей таблице показаны сведения о событии:
Событие | Идентификатор события | Возникает, когда |
---|---|---|
GCFinalizersEnd_V1 |
13 | Конец выполнения методов завершения. |
В следующей таблице показаны данные о событии:
Имя поля | Тип данных | Описание |
---|---|---|
Считать | win:UInt32 | Количество запущенных средств завершения. |
ClrInstanceID | win:UInt16 | Уникальный идентификатор для экземпляра СРЕДЫ CLR или CoreCLR. |
Событие GCCreateConcurrentThread_V1
В следующей таблице показано ключевое слово и уровень:
Ключевое слово для вызова события | Уровень |
---|---|
GCKeyword (0x1) |
Информационные (4) |
ThreadingKeyword (0x10000) |
Информационные (4) |
В следующей таблице показаны сведения о событии:
Событие | Идентификатор события | Возникает, когда |
---|---|---|
GCCreateConcurrentThread_V1 |
11 | Был создан параллельный поток сборки мусора. |
Нет данных о событии.
Событие GCTerminateConcurrentThread_V1
В следующей таблице показано ключевое слово и уровень:
Ключевое слово для вызова события | Уровень |
---|---|
GCKeyword (0x1) |
Информационные (4) |
ThreadingKeyword (0x10000) |
Информационные (4) |
В следующей таблице показаны сведения о событии:
Событие | Идентификатор события | Возникает, когда |
---|---|---|
GCTerminateConcurrentThread_V1 |
12 | Параллельный поток сборки мусора был завершен. |
Нет данных о событии.