События сборки мусора среды выполнения .NET
События, описанные в этой статье, собирают сведения, относящиеся к сборке мусора. Они помогают в диагностике и отладке, включая определение времени выполнения сборки мусора, сколько памяти было освобождено во время сборки мусора и т. д. Дополнительные сведения об использовании этих событий для диагностики см. в ведения журнала и трассировки приложений .NET.
Событие GCStart_V2
В следующей таблице показано ключевое слово и уровень:
Ключевое слово для вызова события | Уровень |
---|---|
GCKeyword (0x1) |
Информационные (4) |
В следующей таблице показаны сведения о событии:
Событие | Идентификатор события | Возникает, когда |
---|---|---|
GCStart_V1 |
1 | Сборка мусора началась. |
В следующей таблице показаны данные о событии:
Имя поля | Тип данных | Описание |
---|---|---|
Count |
win:UInt32 |
Сборка мусора n. |
Depth |
win:UInt32 |
Поколение, которое собирается. |
Reason |
win:UInt32 |
Почему сборка мусора активируется:0x0 — выделение кучи небольших объектов.0x1 — индуцировано.0x2 — низкая память.0x3 — пусто.0x4 — выделение кучи больших объектов.0x5 — вне места (для кучи небольших объектов).0x6 — вне места (для кучи больших объектов).0x7 — вызывается, но не принудительно блокируется. |
Type |
win:UInt32 |
0x0 . Блокировка сборки мусора произошла вне фоновой сборки мусора.0x1 — фоновая сборка мусора.0x2 . Блокировка сборки мусора произошла во время фоновой сборки мусора. |
ClrInstanceID |
win:UInt16 | Уникальный идентификатор для экземпляра CoreCLR. |
Событие GCEnd_V1
В следующей таблице показано ключевое слово и уровень:
Ключевое слово для вызова события | Уровень |
---|---|
GCKeyword (0x1) |
Информационные (4) |
В следующей таблице показаны сведения о событии:
Событие | Идентификатор события | Возникает, когда |
---|---|---|
GCEnd_V1 |
2 | Сборка мусора закончилась. |
В следующей таблице показаны данные о событии:
Имя поля | Тип данных | Описание |
---|---|---|
Count |
win:UInt32 |
Сборка мусора n. |
Depth |
win:UInt32 |
Поколение, которое было собрано. |
ClrInstanceID |
win:UInt16 | Уникальный идентификатор для экземпляра 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 |
Уникальный идентификатор для экземпляра CoreCLR. |
GenerationSize4 |
win:UInt64 |
Размер кучи закрепленного объекта в байтах. |
TotalPromotedSize4 |
win:UInt64 |
Количество байтов, которые выжили в кучи закрепленных объектов после последней коллекции. |
событие GCCreateSegment_V1
В следующей таблице показано ключевое слово и уровень:
Ключевое слово для вызова события | Уровень |
---|---|
GCKeyword (0x1) |
Информационные (4) |
В следующей таблице показаны сведения о событии:
Событие | Идентификатор события | Возникает, когда |
---|---|---|
GCCreateSegment_V1 |
5 | Был создан новый сегмент сборки мусора. Кроме того, если трассировка включена в процессе, который уже запущен, это событие вызывается для каждого существующего сегмента. |
В следующей таблице показаны данные о событии:
Имя поля | Тип данных | Описание |
---|---|---|
Address |
win:UInt64 |
Адрес сегмента. |
Size |
win:UInt64 |
Размер сегмента. |
Type |
win:UInt32 |
0x0 — небольшая куча объектов. 0x1 — куча больших объектов. 0x2 — куча только для чтения. |
ClrInstanceID |
win:UInt16 |
Уникальный идентификатор для экземпляра CoreCLR. |
Обратите внимание, что размер сегментов, выделенных сборщиком мусора, зависит от реализации и в любой момент может изменяться, включая периодические обновления. Ваше приложение никогда не должно делать предположений о определенном размере сегмента или не следует пытаться настроить объем памяти, доступной для выделения сегментов.
событие GCFreeSegment_V1
В следующей таблице показано ключевое слово и уровень:
Ключевое слово для вызова события | Уровень |
---|---|
GCKeyword (0x1) |
Информационные (4) |
В следующей таблице показаны сведения о событии:
Событие | Идентификатор события | Возникает, когда |
---|---|---|
GCFreeSegment_V1 |
6 | Выпущен сегмент сборки мусора. |
В следующей таблице показаны данные о событии:
Имя поля | Тип данных | Описание |
---|---|---|
Address |
win:UInt64 |
Адрес сегмента. |
ClrInstanceID |
win:UInt16 |
Уникальный идентификатор для экземпляра CoreCLR. |
событие GCRestartEEBegin_V1
В следующей таблице показано ключевое слово и уровень:
Ключевое слово для вызова события | Уровень |
---|---|
GCKeyword (0x1) |
Информационные (4) |
В следующей таблице показаны сведения о событии:
Событие | Идентификатор события | Возникает, когда |
---|---|---|
GCRestartEEBegin_V1 |
7 | Началось возобновление приостановки среды CLR. |
Это событие не содержит данных о событиях.
событие GCRestartEEEnd_V1
В следующей таблице показано ключевое слово и уровень:
Ключевое слово для вызова события | Уровень |
---|---|
GCKeyword (0x1) |
Информационные (4) |
В следующей таблице показаны сведения о событии:
Событие | Идентификатор события | Возникает, когда |
---|---|---|
GCRestartEEEnd_V1 |
3 | Возобновление приостановки среды cl language runtime завершено. |
Это событие не содержит данных о событиях.
событие GCSuspendEEEnd_V1
В следующей таблице показано ключевое слово и уровень:
Ключевое слово для вызова события | Уровень |
---|---|
GCKeyword (0x1) |
Информационные (4) |
В следующей таблице показаны сведения о событии:
Событие | Идентификатор события | Возникает, когда |
---|---|---|
GCSuspendEEEnd_V1 |
8 | Завершение приостановки подсистемы выполнения для сборки мусора. |
Это событие не содержит данных о событиях.
событие GCSuspendEEBegin_V1
В следующей таблице показано ключевое слово и уровень:
Ключевое слово для вызова события | Уровень |
---|---|
GCKeyword (0x1) |
Информационные (4) |
В следующей таблице показаны сведения о событии:
Событие | Идентификатор события | Возникает, когда |
---|---|---|
GCSuspendEEBegin_V1 |
9 | Начало приостановки подсистемы выполнения для сборки мусора. |
Имя поля | Тип данных | Описание |
---|---|---|
Count |
win:UInt32 |
Сборка мусора n. |
Reason |
win:UInt32 |
Причина приостановки EE.0x0 : приостановка для других0x1 : приостановка для GC.0x2 : приостановка завершения работы appDomain.0x3 : приостановка для питчинга кода.0x4 : приостановка завершения работы.0x5 : приостановка для отладчика.0x6 : приостановка для подготовки GC.0x7 : приостановка для очистки отладчика |
событие GCAllocationTick_V3
В следующей таблице показано ключевое слово и уровень:
Ключевое слово для вызова события | Уровень |
---|---|
GCKeyword (0x1) |
Подробные (5) |
В следующей таблице показаны сведения о событии:
Событие | Идентификатор события | Возникает, когда |
---|---|---|
GCAllocationTick_V3 |
10 | Каждый раз выделяется примерно 100 КБ. |
В следующей таблице показаны данные о событии:
Имя поля | Тип данных | Описание |
---|---|---|
AllocationAmount |
win:UInt32 |
Размер выделения в байтах. Это значение является точным для выделения, которые меньше длины ULONG (4 294 967 295 байт). Если выделение больше, это поле содержит усеченное значение. Используйте AllocationAmount64 для очень больших выделений. |
AllocationKind |
win:UInt32 |
0x0 — выделение небольших объектов (выделение находится в небольшой куче объектов).0x1 — выделение больших объектов (выделение находится в большой куче объектов). |
AllocationAmount64 |
win:UInt64 |
Размер выделения в байтах. Это значение является точным для очень больших выделений. |
TypeId |
win:Pointer |
Адрес метода MethodTable. Если во время этого события выделено несколько типов объектов, это адрес метода MethodTable, соответствующий последнему объекту (объект, который вызвал превышение порогового значения 100 КБ). |
TypeName |
win:UnicodeString |
Имя выделенного типа. При наличии нескольких типов объектов, выделенных во время этого события, это тип последнего выделенного объекта (объект, который привел к превышению порогового значения 100 КБ). |
HeapIndex |
win:UInt32 |
Куча, в которой был выделен объект. Это значение равно 0 (ноль) при выполнении сборки мусора рабочей станции. |
Address |
win:Pointer |
Адрес последнего выделенного объекта. |
ClrInstanceID |
win:UInt16 |
Уникальный идентификатор для экземпляра CoreCLR. |
событие GCCreateConcurrentThread_V1
В следующей таблице показано ключевое слово и уровень:
Ключевое слово для вызова события | Уровень |
---|---|
GCKeyword (0x1) |
Информационные (4) |
ThreadingKeyword (0x10000) |
Информационные (4) |
В следующей таблице показаны сведения о событии:
Событие | Идентификатор события | Возникает, когда |
---|---|---|
GCCreateConcurrentThread_V1 |
11 | Был создан параллельный поток сборки мусора. |
Это событие не содержит данных о событиях.
событие GCTerminateConcurrentThread_V1
В следующей таблице показано ключевое слово и уровень:
Ключевое слово для вызова события | Уровень |
---|---|
GCKeyword (0x1) |
Информационные (4) |
ThreadingKeyword (0x10000) |
Информационные (4) |
В следующей таблице показаны сведения о событии:
Событие | Идентификатор события | Возникает, когда |
---|---|---|
GCTerminateConcurrentThread_V1 |
12 | Параллельный поток сборки мусора был завершен. |
Это событие не содержит данных о событиях.
событие GCFinalizersBegin_V1
В следующей таблице показано ключевое слово и уровень:
Ключевое слово для вызова события | Уровень |
---|---|
GCKeyword (0x1) |
Информационные (4) |
В следующей таблице показаны сведения о событии:
Событие | Идентификатор события | Возникает, когда |
---|---|---|
GCFinalizersBegin_V1 |
14 | Начало выполнения методов завершения. |
Это событие не содержит данных о событиях.
событие GCFinalizersEnd_V1
В следующей таблице показано ключевое слово и уровень:
Ключевое слово для вызова события | Уровень |
---|---|
GCKeyword (0x1) |
Информационные (4) |
В следующей таблице показаны сведения о событии:
Событие | Идентификатор события | Возникает, когда |
---|---|---|
GCFinalizersEnd_V1 |
13 | Конец выполнения методов завершения. |
В следующей таблице показаны данные о событии:
Имя поля | Тип данных | Описание |
---|---|---|
Count |
win:UInt32 |
Количество запущенных средств завершения. |
ClrInstanceID |
win:UInt16 | Уникальный идентификатор для экземпляра СРЕДЫ CLR или CoreCLR. |
Событие SetGCHandle
В следующей таблице показано ключевое слово и уровень:
Ключевое слово для вызова события | Уровень |
---|---|
GCHandleKeyword (0x2) |
Информационные (4) |
В следующей таблице показаны сведения о событии:
Событие | Идентификатор события | Возникает, когда |
---|---|---|
SetGCHandle |
30 | Задан дескриптор GC. |
В следующей таблице показаны данные о событии:
Имя поля | Тип данных | Описание |
---|---|---|
HandleID |
win:Pointer |
Адрес выделенного дескриптора. |
ObjectID |
win:Pointer |
Адрес объекта, дескриптор которого был создан. |
Kind |
win:UInt32 |
Тип дескриптора GC, который был задан. 0x0 : WeakShort 0x1 : WeakLong 0x2 : сильный 0x3 : закреплено 0x4 : переменная0x5 : RefCounted 0x6 : зависимый0x7 : AsyncPinned0x8 : SizedRef |
Generation |
win:UInt32 |
Создание объекта, дескриптор которого был создан. |
AppDomainID |
win:UInt64 |
Идентификатор домена приложения. |
ClrInstanceID |
win:UInt16 |
Уникальный идентификатор для экземпляра CoreCLR. |
Событие DestroyGCHandle
В следующей таблице показано ключевое слово и уровень:
Ключевое слово для вызова события | Уровень |
---|---|
GCHandleKeyword (0x2) |
Информационные (4) |
В следующей таблице показаны сведения о событии:
Событие | Идентификатор события | Возникает, когда |
---|---|---|
DestroyGCHandle |
31 | Дескриптор GC уничтожается. |
В следующей таблице показаны данные о событии:
Имя поля | Тип данных | Описание |
---|---|---|
HandleID |
win:Pointer |
Адрес уничтоженного дескриптора. |
ClrInstanceID |
win:UInt16 | Уникальный идентификатор для экземпляра CoreCLR. |
Событие PinObjectAtGCTime
В следующей таблице показано ключевое слово и уровень:
Ключевое слово для вызова события | Уровень |
---|---|
GCKeyword (0x1) |
Подробные (5) |
В следующей таблице показаны сведения о событии:
Событие | Идентификатор события | Возникает, когда |
---|---|---|
PinObjectAtGCTime |
33 | Объект был закреплен во время сборки мусора. |
В следующей таблице показаны данные о событии:
Имя поля | Тип данных | Описание |
---|---|---|
HandleID |
win:Pointer |
Адрес дескриптора. |
ObjectID |
win:Pointer |
Адрес закрепленного объекта. |
ObjectSize |
win:UInt64 |
Размер закрепленного объекта. |
TypeName |
win:UnicodeString |
Имя типа закрепленного объекта. |
ClrInstanceID |
win:UInt16 |
Уникальный идентификатор для экземпляра CoreCLR. |
Событие GCTriggered
В следующей таблице показано ключевое слово и уровень:
Ключевое слово для вызова события | Уровень |
---|---|
GCKeyword (0x1) |
Подробные (5) |
В следующей таблице показаны сведения о событии:
Событие | Идентификатор события | Возникает, когда |
---|---|---|
GCTriggered |
35 | Был активирован GC. |
В следующей таблице показаны данные о событии:
Имя поля | Тип данных | Описание |
---|---|---|
Reason |
win:UInt32 |
Причина активации GC.0x0 : AllocSmall0x1 : Индуцированный 0x2 : LowMemory 0x3 : пустой 0x4 : AllocLarge 0x5 : OutOfSpaceSmallObjectHeap 0x6 : OutOfSpaceLargeObjectHeap 0x7 :InducedNoForce 0x8 : стресс 0x9 : InducedLowMemory |
ClrInstanceID |
win:UInt16 |
Уникальный идентификатор для экземпляра CoreCLR. |
Событие IncreaseMemoryPressure
В следующей таблице показано ключевое слово и уровень:
Ключевое слово для вызова события | Уровень |
---|---|
GCKeyword (0x1) |
Сведения (4) |
В следующей таблице показаны сведения о событии:
Событие | Идентификатор события | Возникает, когда |
---|---|---|
IncreaseMemoryPressure |
200 | Давление памяти было увеличено. |
В следующей таблице показаны данные о событии:
Имя поля | Тип данных | Описание |
---|---|---|
ClrInstanceID |
win:UInt16 | Уникальный идентификатор для экземпляра CoreCLR. |
Событие DecreaseMemoryPressure
В следующей таблице показано ключевое слово и уровень:
Ключевое слово для вызова события | Уровень |
---|---|
GCKeyword (0x1) |
Сведения (4) |
В следующей таблице показаны сведения о событии:
Событие | Идентификатор события | Возникает, когда |
---|---|---|
DecreaseMemoryPressure |
201 | Давление памяти сократилось. |
В следующей таблице показаны данные о событии:
Имя поля | Тип данных | Описание |
---|---|---|
BytesFreed |
win:UInt32 |
Освобождено байтов. |
ClrInstanceID |
win:UInt16 |
Уникальный идентификатор для экземпляра CoreCLR. |
Событие GCMarkWithType
В следующей таблице показано ключевое слово и уровень:
Ключевое слово для вызова события | Уровень |
---|---|
GCKeyword (0x1) |
Сведения (4) |
В следующей таблице показаны сведения о событии:
Событие | Идентификатор события | Возникает, когда |
---|---|---|
GCMarkWithType |
202 | Корневой каталог GC отмечен во время этапа разметки GC. |
В следующей таблице показаны данные о событии:
Имя поля | Тип данных | Описание |
---|---|---|
HeapNum |
win:UInt32 |
Номер кучи. |
ClrInstanceID |
win:UInt16 | Уникальный идентификатор для экземпляра CoreCLR. |
Type |
win:UInt32 |
Корневой тип GC.0x0 : стек0x1 : метод завершения0x2 : дескриптор0x3 : старые0x4 : SizedRef0x5 : переполнение |
Bytes |
win:UInt64 |
Число помеченных байтов. |
событие GCJoin_V2
В следующей таблице показано ключевое слово и уровень:
Ключевое слово для вызова события | Уровень |
---|---|
GCKeyword (0x1) |
Подробные (5) |
В следующей таблице показаны сведения о событии:
Событие | Идентификатор события | Возникает, когда |
---|---|---|
GCJoin_V2 |
203 | Присоединенный поток GC. |
В следующей таблице показаны данные о событии:
Имя поля | Тип данных | Описание |
---|---|---|
Heap |
win:UInt32 |
Номер кучи |
JoinTime |
win:UInt32 |
Указывает, запускается ли это событие в начале соединения или конце соединения (0x0 для начала соединения, 0x1 для завершения соединения) |
JoinType |
win:UInt32 |
Тип соединения. 0x0 : последнее присоединение0x1 : присоединение 0x2 : перезапуск 0x3 : первое обратное соединение0x4 : обратное соединение |
ClrInstanceID |
win:UInt16 |
Уникальный идентификатор для экземпляра CoreCLR. |