다음을 통해 공유


.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: AsyncPinned

0x8: 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: AllocSmall

0x1: 유도됨

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: Stack

0x1: 종료자

0x2: 핸들

0x3: 이전

0x4: SizedRef

0x5: 오버플로

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입니다.