Поделиться через


События трассировки мусора

Эти события собирают сведения, относящиеся к сборке мусора. Они помогают в диагностике и отладке, в том числе определить, сколько раз выполнялась сборка мусора, сколько памяти было освобождено во время сборки мусора и т. д.

Эта категория состоит из следующих событий:

Событие 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 Параллельный поток сборки мусора был завершен.

Нет данных о событии.

См. также