다음을 통해 공유


.NET 런타임 가비지 수집 이벤트

이 문서에 설명된 이벤트는 가비지 수집과 관련된 정보를 수집합니다. 가비지 수집 수행 횟수, 가비지 수집 중에 해제된 메모리 양 등을 확인하는 작업을 포함하여 진단 및 디버깅에 도움이 됩니다. 진단 목적으로 이 이벤트를 사용하는 방법에 관한 자세한 내용은 .NET 애플리케이션 로그 및 추적을 참조하세요.

GCStart_V2 이벤트

다음 표에서는 키워드와 수준을 보여 줍니다.

이벤트를 발생시키기 위한 키워드 Level
GCKeyword (0x1) 정보(4)

다음 표에서는 이벤트 정보를 보여 줍니다.

이벤트 이벤트 ID 발생 시기
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 인스턴스의 고유 ID입니다.

GCEnd_V1 Event

다음 표에서는 키워드와 수준을 보여 줍니다.

이벤트를 발생시키기 위한 키워드 Level
GCKeyword (0x1) 정보(4)

다음 표에서는 이벤트 정보를 보여 줍니다.

이벤트 이벤트 ID 발생 시기
GCEnd_V1 2 가비지 수집이 종료되었습니다.

다음 표에서는 이벤트 데이터를 보여 줍니다.

필드 이름 데이터 형식 설명
Count win:UInt32 n번째 가비지 수집입니다.
Depth win:UInt32 수집된 세대입니다.
ClrInstanceID win:UInt16 CoreCLR 인스턴스의 고유 ID입니다.

GCHeapStats_V2 이벤트

다음 표에서는 키워드와 수준을 보여 줍니다.

이벤트를 발생시키기 위한 키워드 Level
GCKeyword (0x1) 정보(4)

다음 표에서는 이벤트 정보를 보여 줍니다.

이벤트 이벤트 ID 설명
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 인스턴스의 고유 ID입니다.
GenerationSize4 win:UInt64 고정된 개체 힙의 크기(바이트)입니다.
TotalPromotedSize4 win:UInt64 마지막 수집 후에 고정된 개체 힙에 남아 있는 바이트 수입니다.

GCCreateSegment_V1 이벤트

다음 표에서는 키워드와 수준을 보여 줍니다.

이벤트를 발생시키기 위한 키워드 Level
GCKeyword (0x1) 정보(4)

다음 표에서는 이벤트 정보를 보여 줍니다.

이벤트 이벤트 ID 발생 시기
GCCreateSegment_V1 5 새 가비지 수집 세그먼트가 만들어졌습니다. 또한 이미 실행 중인 프로세스에서 추적 기능이 사용되면 각 기존 세그먼트에 대해 이 이벤트가 발생합니다.

다음 표에서는 이벤트 데이터를 보여 줍니다.

필드 이름 데이터 형식 설명
Address win:UInt64 세그먼트 주소입니다.
Size win:UInt64 세그먼트 크기입니다.
Type win:UInt32 0x0 - 작은 개체 힙.

0x1 - 큰 개체 힙

0x2 - 읽기 전용 힙.
ClrInstanceID win:UInt16 CoreCLR 인스턴스의 고유 ID입니다.

가비지 수집기에서 할당되는 세그먼트 크기는 구현에 따라 다르며 정기적인 업데이트를 포함하여 언제든지 변경될 수 있습니다. 앱에서 특정 세그먼트 크기를 가정하거나 의존해서는 안 되며, 세그먼트 할당에 사용할 수 있는 메모리 크기를 구성하려고 해서도 안 됩니다.

GCFreeSegment_V1 이벤트

다음 표에서는 키워드와 수준을 보여 줍니다.

이벤트를 발생시키기 위한 키워드 Level
GCKeyword (0x1) 정보(4)

다음 표에서는 이벤트 정보를 보여 줍니다.

이벤트 이벤트 ID 발생 시기
GCFreeSegment_V1 6 가비지 수집 세그먼트가 해제되었습니다.

다음 표에서는 이벤트 데이터를 보여 줍니다.

필드 이름 데이터 형식 설명
Address win:UInt64 세그먼트 주소입니다.
ClrInstanceID win:UInt16 CoreCLR 인스턴스의 고유 ID입니다.

GCRestartEEBegin_V1 이벤트

다음 표에서는 키워드와 수준을 보여 줍니다.

이벤트를 발생시키기 위한 키워드 Level
GCKeyword (0x1) 정보(4)

다음 표에서는 이벤트 정보를 보여 줍니다.

이벤트 이벤트 ID 발생 시기
GCRestartEEBegin_V1 7 공용 언어 런타임 일시 중단에서 다시 시작이 시작되었습니다.

이 이벤트에는 이벤트 데이터가 없습니다.

GCRestartEEEnd_V1 이벤트

다음 표에서는 키워드와 수준을 보여 줍니다.

이벤트를 발생시키기 위한 키워드 Level
GCKeyword (0x1) 정보(4)

다음 표에서는 이벤트 정보를 보여 줍니다.

이벤트 이벤트 ID 발생 시기
GCRestartEEEnd_V1 3 공용 언어 런타임 일시 중단에서 다시 시작이 종료되었습니다.

이 이벤트에는 이벤트 데이터가 없습니다.

GCSuspendEEEnd_V1 이벤트

다음 표에서는 키워드와 수준을 보여 줍니다.

이벤트를 발생시키기 위한 키워드 Level
GCKeyword (0x1) 정보(4)

다음 표에서는 이벤트 정보를 보여 줍니다.

이벤트 이벤트 ID 발생 시기
GCSuspendEEEnd_V1 8 가비지 수집에 대한 실행 엔진의 일시 중단이 종료됩니다.

이 이벤트에는 이벤트 데이터가 없습니다.

GCSuspendEEBegin_V1 이벤트

다음 표에서는 키워드와 수준을 보여 줍니다.

이벤트를 발생시키기 위한 키워드 Level
GCKeyword (0x1) 정보(4)

다음 표에서는 이벤트 정보를 보여 줍니다.

이벤트 이벤트 ID 발생 시기
GCSuspendEEBegin_V1 9 가비지 수집에 대한 실행 엔진의 일시 중단이 시작됩니다.
필드 이름 데이터 형식 설명
Count win:UInt32 n번째 가비지 수집입니다.
Reason win:UInt32 EE 일시 중단의 이유입니다.

0x0: 기타를 위해 일시 중단합니다.

0x1: GC를 위해 일시 중단합니다.

0x2: AppDomain 종료를 위해 일시 중단합니다.

0x3: 코드 피칭을 위해 일시 중단합니다.

0x4: 종료를 위해 일시 중단합니다.

0x5: 디버거를 위해 일시 중단합니다.

0x6: GC 준비를 위해 일시 중단합니다.

0x7: 디버거 스위프를 위해 일시 중단합니다.

GCAllocationTick_V3 이벤트

다음 표에서는 키워드와 수준을 보여 줍니다.

이벤트를 발생시키기 위한 키워드 Level
GCKeyword (0x1) 자세한 정보 표시(5)

다음 표에서는 이벤트 정보를 보여 줍니다.

이벤트 이벤트 ID 발생 시기
GCAllocationTick_V3 10 매번 100KB 정도가 할당됩니다.

다음 표에서는 이벤트 데이터를 보여 줍니다.

필드 이름 데이터 형식 설명
AllocationAmount win:UInt32 할당 크기(바이트)입니다. 이 값은 ULONG 길이(4,294,967,295바이트)보다 적은 할당에 대해 정확합니다. 할당이 더 크면 이 필드에 잘린 값이 포함됩니다. 매우 큰 할당에 대해서는 AllocationAmount64 를 사용하세요.
AllocationKind win:UInt32 0x0 - 작은 개체 할당입니다(할당이 작은 개체 힙에 포함됨).

0x1 - 큰 개체 할당입니다(할당이 큰 개체 힙에 포함됨).
AllocationAmount64 win:UInt64 할당 크기(바이트)입니다. 이 값은 매우 큰 할당에 대해 정확합니다.
TypeId win:Pointer MethodTable 주소입니다. 이 이벤트 중에 여러 가지 개체 형식이 할당되었으면 이 항목은 할당된 마지막 개체(100KB 임계값을 초과한 개체)에 해당하는 MethodTable의 주소입니다.
TypeName win:UnicodeString 할당된 형식 이름입니다. 이 이벤트 중에 여러 가지 개체 형식이 할당되었으면 이 항목은 할당된 마지막 개체(100KB 임계값을 초과한 개체)의 형식입니다.
HeapIndex win:UInt32 개체가 할당된 힙입니다. 워크스테이션 가비지 수집에서 실행될 때 이 값은 0(영)입니다.
Address win:Pointer 마지막으로 할당된 개체의 주소입니다.
ClrInstanceID win:UInt16 CoreCLR 인스턴스의 고유 ID입니다.

GCCreateConcurrentThread_V1 이벤트

다음 표에서는 키워드와 수준을 보여 줍니다.

이벤트를 발생시키기 위한 키워드 Level
GCKeyword (0x1) 정보(4)
ThreadingKeyword (0x10000) 정보(4)

다음 표에서는 이벤트 정보를 보여 줍니다.

이벤트 이벤트 ID 발생 시기
GCCreateConcurrentThread_V1 11 동시 가비지 수집 스레드가 만들어졌습니다.

이 이벤트에는 이벤트 데이터가 없습니다.

GCTerminateConcurrentThread_V1 이벤트

다음 표에서는 키워드와 수준을 보여 줍니다.

이벤트를 발생시키기 위한 키워드 Level
GCKeyword (0x1) 정보(4)
ThreadingKeyword (0x10000) 정보(4)

다음 표에서는 이벤트 정보를 보여 줍니다.

이벤트 이벤트 ID 발생 시기
GCTerminateConcurrentThread_V1 12 동시 가비지 수집 스레드가 종료되었습니다.

이 이벤트에는 이벤트 데이터가 없습니다.

GCFinalizersBegin_V1 이벤트

다음 표에서는 키워드와 수준을 보여 줍니다.

이벤트를 발생시키기 위한 키워드 Level
GCKeyword (0x1) 정보(4)

다음 표에서는 이벤트 정보를 보여 줍니다.

이벤트 이벤트 ID 발생 시기
GCFinalizersBegin_V1 14 종료자 실행이 시작됩니다.

이 이벤트에는 이벤트 데이터가 없습니다.

GCFinalizersEnd_V1 이벤트

다음 표에서는 키워드와 수준을 보여 줍니다.

이벤트를 발생시키기 위한 키워드 Level
GCKeyword (0x1) 정보(4)

다음 표에서는 이벤트 정보를 보여 줍니다.

이벤트 이벤트 ID 발생 시기
GCFinalizersEnd_V1 13 종료자 실행이 종료됩니다.

다음 표에서는 이벤트 데이터를 보여 줍니다.

필드 이름 데이터 형식 설명
Count win:UInt32 실행된 종료자 수입니다.
ClrInstanceID win:UInt16 CLR 또는 CoreCLR 인스턴스에 대한 고유 ID입니다.

SetGCHandle 이벤트

다음 표에서는 키워드와 수준을 보여 줍니다.

이벤트를 발생시키기 위한 키워드 Level
GCHandleKeyword(0x2) 정보(4)

다음 표에서는 이벤트 정보를 보여 줍니다.

이벤트 이벤트 ID 발생 시기
SetGCHandle 30 GC 핸들이 설정되었습니다.

다음 표에서는 이벤트 데이터를 보여 줍니다.

필드 이름 데이터 형식 설명
HandleID win:Pointer 할당된 핸들의 주소입니다.
ObjectID win:Pointer 핸들이 만들어진 개체의 주소입니다.
Kind win:UInt32 설정된 GC 핸들의 형식입니다.

0x0: WeakShort

0x1: WeakLong

0x2:강한

0x3:고정

0x4: Variable

0x5: RefCounted

0x6: Dependent

0x7: AsyncPinned

0x8: SizedRef
Generation win:UInt32 핸들이 만들어진 개체의 세대입니다.
AppDomainID win:UInt64 AppDomain ID입니다.
ClrInstanceID win:UInt16 CoreCLR 인스턴스의 고유 ID입니다.

DestroyGCHandle 이벤트

다음 표에서는 키워드와 수준을 보여 줍니다.

이벤트를 발생시키기 위한 키워드 Level
GCHandleKeyword(0x2) 정보(4)

다음 표에서는 이벤트 정보를 보여 줍니다.

이벤트 이벤트 ID 발생 시기
DestroyGCHandle 31 GC 핸들이 제거되었습니다.

다음 표에서는 이벤트 데이터를 보여 줍니다.

필드 이름 데이터 형식 설명
HandleID win:Pointer 제거된 핸들의 주소입니다.
ClrInstanceID win:UInt16 CoreCLR 인스턴스의 고유 ID입니다.

PinObjectAtGCTime 이벤트

다음 표에서는 키워드와 수준을 보여 줍니다.

이벤트를 발생시키기 위한 키워드 Level
GCKeyword (0x1) 자세한 정보 표시(5)

다음 표에서는 이벤트 정보를 보여 줍니다.

이벤트 이벤트 ID 발생 시기
PinObjectAtGCTime 33 GC 중에 개체가 고정되었습니다.

다음 표에서는 이벤트 데이터를 보여 줍니다.

필드 이름 데이터 형식 설명
HandleID win:Pointer 핸들의 주소입니다.
ObjectID win:Pointer 고정된 개체의 주소입니다.
ObjectSize win:UInt64 고정된 개체의 크기입니다.
TypeName win:UnicodeString 고정된 개체의 형식 이름입니다.
ClrInstanceID win:UInt16 CoreCLR 인스턴스의 고유 ID입니다.

GCTriggered 이벤트

다음 표에서는 키워드와 수준을 보여 줍니다.

이벤트를 발생시키기 위한 키워드 Level
GCKeyword (0x1) 자세한 정보 표시(5)

다음 표에서는 이벤트 정보를 보여 줍니다.

이벤트 이벤트 ID 발생 시기
GCTriggered 35 GC가 트리거되었습니다.

다음 표에서는 이벤트 데이터를 보여 줍니다.

필드 이름 데이터 형식 설명
Reason win:UInt32 GC가 트리거된 이유입니다.

0x0: AllocSmall

0x1:유도

0x2: LowMemory

0x3:빈

0x4: AllocLarge

0x5: OutOfSpaceSmallObjectHeap

0x6: OutOfSpaceLargeObjectHeap

0x7:InducedNoForce

0x8:스트레스

0x9: InducedLowMemory
ClrInstanceID win:UInt16 CoreCLR 인스턴스의 고유 ID입니다.

IncreaseMemoryPressure 이벤트

다음 표에서는 키워드와 수준을 보여 줍니다.

이벤트를 발생시키기 위한 키워드 Level
GCKeyword (0x1) 정보(4)

다음 표에서는 이벤트 정보를 보여 줍니다.

이벤트 이벤트 ID 발생 시기
IncreaseMemoryPressure 200 메모리 압력이 증가했습니다.

다음 표에서는 이벤트 데이터를 보여 줍니다.

필드 이름 데이터 형식 설명
ClrInstanceID win:UInt16 CoreCLR 인스턴스의 고유 ID입니다.

DecreaseMemoryPressure 이벤트

다음 표에서는 키워드와 수준을 보여 줍니다.

이벤트를 발생시키기 위한 키워드 Level
GCKeyword (0x1) 정보(4)

다음 표에서는 이벤트 정보를 보여 줍니다.

이벤트 이벤트 ID 발생 시기
DecreaseMemoryPressure 201 메모리 압력이 감소했습니다.

다음 표에서는 이벤트 데이터를 보여 줍니다.

필드 이름 데이터 형식 설명
BytesFreed win:UInt32 해제된 바이트입니다.
ClrInstanceID win:UInt16 CoreCLR 인스턴스의 고유 ID입니다.

GCMarkWithType 이벤트

다음 표에서는 키워드와 수준을 보여 줍니다.

이벤트를 발생시키기 위한 키워드 Level
GCKeyword (0x1) 정보(4)

다음 표에서는 이벤트 정보를 보여 줍니다.

이벤트 이벤트 ID 발생 시기
GCMarkWithType 202 GC 표시 단계 중에 GC 루트가 표시되었습니다.

다음 표에서는 이벤트 데이터를 보여 줍니다.

필드 이름 데이터 형식 설명
HeapNum win:UInt32 힙 번호입니다.
ClrInstanceID win:UInt16 CoreCLR 인스턴스의 고유 ID입니다.
Type win:UInt32 GC 루트 형식입니다.

0x0: Stack

0x1: Finalizer

0x2: Handle

0x3: Older

0x4: SizedRef

0x5: Overflow

Bytes win:UInt64 표시된 바이트 수입니다.

GCJoin_V2 이벤트

다음 표에서는 키워드와 수준을 보여 줍니다.

이벤트를 발생시키기 위한 키워드 Level
GCKeyword (0x1) 자세한 정보 표시(5)

다음 표에서는 이벤트 정보를 보여 줍니다.

이벤트 이벤트 ID 발생 시기
GCJoin_V2 203 조인된 GC 스레드입니다.

다음 표에서는 이벤트 데이터를 보여 줍니다.

필드 이름 데이터 형식 설명
Heap win:UInt32 힙 번호입니다.
JoinTime win:UInt32 이 이벤트가 조인 시작 또는 조인 종료 시 발생하는지를 나타냅니다(조인 시작의 경우 0x0, 조인 종료의 경우 0x1).
JoinType win:UInt32 조인 형식입니다.

0x0: 마지막 조인

0x1:가입

0x2:다시 시작할

0x3: 첫 번째 역방향 조인

0x4: 역방향 조인

ClrInstanceID win:UInt16 CoreCLR 인스턴스의 고유 ID입니다.