.NET 런타임 가비지 수집 이벤트
이 문서에 설명된 이벤트는 가비지 수집과 관련된 정보를 수집합니다. 가비지 수집이 수행된 횟수, 가비지 수집 중에 해제된 메모리 양 등을 결정하는 등 진단 및 디버깅에 도움이 됩니다. 진단 목적으로 이러한 이벤트를 사용하는 방법에 대한 자세한 내용은 .NET 애플리케이션로깅 및 추적을 참조하세요.
GCStart_V2 이벤트
다음 표에서는 키워드와 수준을 보여줍니다.
이벤트를 발생시키는 키워드 | 수준 |
---|---|
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 이벤트
다음 표에서는 키워드와 수준을 보여줍니다.
이벤트를 발생시키는 키워드 | 수준 |
---|---|
GCKeyword (0x1) |
정보 제공 (4) |
다음 표에서는 이벤트 정보를 보여줍니다.
이벤트 | 이벤트 ID | 발생 시기 |
---|---|---|
GCEnd_V1 |
2 | 가비지 수집이 종료되었습니다. |
다음 표에서는 이벤트 데이터를 보여줍니다.
필드 이름 | 데이터 형식 | 묘사 |
---|---|---|
Count |
win:UInt32 |
n가비지 수집입니다. |
Depth |
win:UInt32 |
수집된 세대입니다. |
ClrInstanceID |
win:UInt16 | CoreCLR 인스턴스의 고유 ID입니다. |
GCHeapStats_V2 이벤트
다음 표에서는 키워드와 수준을 보여줍니다.
이벤트를 발생시키는 키워드 | 수준 |
---|---|
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 이벤트
다음 표에서는 키워드와 수준을 보여줍니다.
이벤트를 발생시키는 키워드 | 수준 |
---|---|
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 이벤트
다음 표에서는 키워드와 수준을 보여줍니다.
이벤트를 발생시키는 키워드 | 수준 |
---|---|
GCKeyword (0x1) |
정보 제공 (4) |
다음 표에서는 이벤트 정보를 보여줍니다.
이벤트 | 이벤트 ID | 발생 시기 |
---|---|---|
GCFreeSegment_V1 |
6 | 가비지 수집 세그먼트가 해제되었습니다. |
다음 표에서는 이벤트 데이터를 보여줍니다.
필드 이름 | 데이터 형식 | 묘사 |
---|---|---|
Address |
win:UInt64 |
세그먼트의 주소입니다. |
ClrInstanceID |
win:UInt16 |
CoreCLR 인스턴스의 고유 ID입니다. |
GCRestartEEBegin_V1 이벤트
다음 표에서는 키워드와 수준을 보여줍니다.
이벤트를 발생시키는 키워드 | 수준 |
---|---|
GCKeyword (0x1) |
정보 제공 (4) |
다음 표에서는 이벤트 정보를 보여줍니다.
이벤트 | 이벤트 ID | 발생 시기 |
---|---|---|
GCRestartEEBegin_V1 |
7 | 공용 언어 런타임 일시 중단에서 다시 시작되었습니다. |
이 이벤트에는 이벤트 데이터가 없습니다.
GCRestartEEEnd_V1 이벤트
다음 표에서는 키워드와 수준을 보여줍니다.
이벤트를 발생시키는 키워드 | 수준 |
---|---|
GCKeyword (0x1) |
정보 제공 (4) |
다음 표에서는 이벤트 정보를 보여줍니다.
이벤트 | 이벤트 ID | 발생 시기 |
---|---|---|
GCRestartEEEnd_V1 |
3 | 공용 언어 런타임 일시 중단에서 다시 시작이 종료되었습니다. |
이 이벤트에는 이벤트 데이터가 없습니다.
GCSuspendEEEnd_V1 이벤트
다음 표에서는 키워드와 수준을 보여줍니다.
이벤트를 발생시키는 키워드 | 수준 |
---|---|
GCKeyword (0x1) |
정보 제공 (4) |
다음 표에서는 이벤트 정보를 보여줍니다.
이벤트 | 이벤트 ID | 발생 시기 |
---|---|---|
GCSuspendEEEnd_V1 |
8 | 가비지 수집에 대한 실행 엔진 일시 중단 종료 |
이 이벤트에는 이벤트 데이터가 없습니다.
GCSuspendEEBegin_V1 이벤트
다음 표에서는 키워드와 수준을 보여줍니다.
이벤트를 발생시키는 키워드 | 수준 |
---|---|
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 이벤트
다음 표에서는 키워드와 수준을 보여줍니다.
이벤트를 발생시키는 키워드 | 수준 |
---|---|
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 이벤트
다음 표에서는 키워드와 수준을 보여줍니다.
이벤트를 발생시키는 키워드 | 수준 |
---|---|
GCKeyword (0x1) |
정보 제공 (4) |
ThreadingKeyword (0x10000) |
정보 제공 (4) |
다음 표에서는 이벤트 정보를 보여줍니다.
이벤트 | 이벤트 ID | 발생 시기 |
---|---|---|
GCCreateConcurrentThread_V1 |
11 | 동시 가비지 수집 스레드가 만들어졌습니다. |
이 이벤트에는 이벤트 데이터가 없습니다.
GCTerminateConcurrentThread_V1 이벤트
다음 표에서는 키워드와 수준을 보여줍니다.
이벤트를 발생시키는 키워드 | 수준 |
---|---|
GCKeyword (0x1) |
정보 제공 (4) |
ThreadingKeyword (0x10000) |
정보 제공 (4) |
다음 표에서는 이벤트 정보를 보여줍니다.
이벤트 | 이벤트 ID | 발생 시기 |
---|---|---|
GCTerminateConcurrentThread_V1 |
12 | 동시 가비지 수집 스레드가 종료되었습니다. |
이 이벤트에는 이벤트 데이터가 없습니다.
GCFinalizersBegin_V1 이벤트
다음 표에서는 키워드와 수준을 보여줍니다.
이벤트를 발생시키는 키워드 | 수준 |
---|---|
GCKeyword (0x1) |
정보 제공 (4) |
다음 표에서는 이벤트 정보를 보여줍니다.
이벤트 | 이벤트 ID | 발생 시기 |
---|---|---|
GCFinalizersBegin_V1 |
14 | 종료자 실행의 시작입니다. |
이 이벤트에는 이벤트 데이터가 없습니다.
GCFinalizersEnd_V1 이벤트
다음 표에서는 키워드와 수준을 보여줍니다.
이벤트를 발생시키는 키워드 | 수준 |
---|---|
GCKeyword (0x1) |
정보 제공 (4) |
다음 표에서는 이벤트 정보를 보여줍니다.
이벤트 | 이벤트 ID | 발생 시기 |
---|---|---|
GCFinalizersEnd_V1 |
13 | 종료자 실행의 끝입니다. |
다음 표에서는 이벤트 데이터를 보여줍니다.
필드 이름 | 데이터 형식 | 묘사 |
---|---|---|
Count |
win:UInt32 |
실행된 종료자 수입니다. |
ClrInstanceID |
win:UInt16 | CLR 또는 CoreCLR 인스턴스의 고유 ID입니다. |
SetGCHandle 이벤트
다음 표에서는 키워드와 수준을 보여줍니다.
이벤트를 발생시키는 키워드 | 수준 |
---|---|
GCHandleKeyword (0x2) |
정보 제공 (4) |
다음 표에서는 이벤트 정보를 보여줍니다.
이벤트 | 이벤트 ID | 발생 시기 |
---|---|---|
SetGCHandle |
30 | GC 핸들이 설정되었습니다. |
다음 표에서는 이벤트 데이터를 보여줍니다.
필드 이름 | 데이터 형식 | 묘사 |
---|---|---|
HandleID |
win:Pointer |
할당된 핸들의 주소입니다. |
ObjectID |
win:Pointer |
핸들을 만든 개체의 주소입니다. |
Kind |
win:UInt32 |
설정된 GC 핸들의 형식입니다. 0x0 : WeakShort 0x1 : WeakLong 0x2 : Strong 0x3 : 고정됨 0x4 : 변수0x5 : RefCounted 0x6 : 종속성0x7 : AsyncPinned0x8 : SizedRef |
Generation |
win:UInt32 |
핸들을 만든 개체의 생성입니다. |
AppDomainID |
win:UInt64 |
AppDomain ID입니다. |
ClrInstanceID |
win:UInt16 |
CoreCLR 인스턴스의 고유 ID입니다. |
DestroyGCHandle 이벤트
다음 표에서는 키워드와 수준을 보여줍니다.
이벤트를 발생시키는 키워드 | 수준 |
---|---|
GCHandleKeyword (0x2) |
정보 제공 (4) |
다음 표에서는 이벤트 정보를 보여줍니다.
이벤트 | 이벤트 ID | 발생 시기 |
---|---|---|
DestroyGCHandle |
31 | GC 핸들이 제거됩니다. |
다음 표에서는 이벤트 데이터를 보여줍니다.
필드 이름 | 데이터 형식 | 묘사 |
---|---|---|
HandleID |
win:Pointer |
소멸된 핸들의 주소입니다. |
ClrInstanceID |
win:UInt16 | CoreCLR 인스턴스의 고유 ID입니다. |
PinObjectAtGCTime 이벤트
다음 표에서는 키워드와 수준을 보여줍니다.
이벤트를 발생시키는 키워드 | 수준 |
---|---|
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 이벤트
다음 표에서는 키워드와 수준을 보여줍니다.
이벤트를 발생시키는 키워드 | 수준 |
---|---|
GCKeyword (0x1) |
자세한 정보 표시 (5) |
다음 표에서는 이벤트 정보를 보여줍니다.
이벤트 | 이벤트 ID | 발생 시기 |
---|---|---|
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 인스턴스의 고유 ID입니다. |
IncreaseMemoryPressure 이벤트
다음 표에서는 키워드와 수준을 보여줍니다.
이벤트를 발생시키는 키워드 | 수준 |
---|---|
GCKeyword (0x1) |
정보 (4) |
다음 표에서는 이벤트 정보를 보여줍니다.
이벤트 | 이벤트 ID | 발생 시기 |
---|---|---|
IncreaseMemoryPressure |
200 | 메모리 압력이 증가했습니다. |
다음 표에서는 이벤트 데이터를 보여줍니다.
필드 이름 | 데이터 형식 | 묘사 |
---|---|---|
ClrInstanceID |
win:UInt16 | CoreCLR 인스턴스의 고유 ID입니다. |
DecreaseMemoryPressure 이벤트
다음 표에서는 키워드와 수준을 보여줍니다.
이벤트를 발생시키는 키워드 | 수준 |
---|---|
GCKeyword (0x1) |
정보 (4) |
다음 표에서는 이벤트 정보를 보여줍니다.
이벤트 | 이벤트 ID | 발생 시기 |
---|---|---|
DecreaseMemoryPressure |
201 | 메모리 압력이 감소했습니다. |
다음 표에서는 이벤트 데이터를 보여줍니다.
필드 이름 | 데이터 형식 | 묘사 |
---|---|---|
BytesFreed |
win:UInt32 |
바이트가 해제되었습니다. |
ClrInstanceID |
win:UInt16 |
CoreCLR 인스턴스의 고유 ID입니다. |
GCMarkWithType 이벤트
다음 표에서는 키워드와 수준을 보여줍니다.
이벤트를 발생시키는 키워드 | 수준 |
---|---|
GCKeyword (0x1) |
정보 (4) |
다음 표에서는 이벤트 정보를 보여줍니다.
이벤트 | 이벤트 ID | 발생 시기 |
---|---|---|
GCMarkWithType |
202 | GC 루트는 GC 표시 단계 중에 표시되었습니다. |
다음 표에서는 이벤트 데이터를 보여줍니다.
필드 이름 | 데이터 형식 | 묘사 |
---|---|---|
HeapNum |
win:UInt32 |
힙 번호입니다. |
ClrInstanceID |
win:UInt16 | CoreCLR 인스턴스의 고유 ID입니다. |
Type |
win:UInt32 |
GC 루트 형식입니다.0x0 : Stack0x1 : 종료자0x2 : 핸들0x3 : 이전0x4 : SizedRef0x5 : 오버플로 |
Bytes |
win:UInt64 |
표시된 바이트 수입니다. |
GCJoin_V2 이벤트
다음 표에서는 키워드와 수준을 보여줍니다.
이벤트를 발생시키는 키워드 | 수준 |
---|---|
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입니다. |
.NET