.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 | 已開始從通用語言執行階段的擱置中恢復。 |
此事件沒有任何事件數據。
GCRestartEEEnd_V1 事件
下表說明關鍵字和層級:
引發事件的關鍵字 | 層級 |
---|---|
GCKeyword (0x1) |
告知性 (4) |
下表說明事件資訊:
活動 | 事件識別碼 | 引發的時機 |
---|---|---|
GCRestartEEEnd_V1 |
3 | 從通用語言執行階段擱置恢復已結束。 |
此事件沒有任何事件數據。
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 KB。 |
下表說明事件資料:
欄位名稱 | 資料類型 | 描述 |
---|---|---|
AllocationAmount |
win:UInt32 |
配置大小 (位元組)。 正確的配置長度值小於 ULONG (4,294,967,295 位元組)。 如果配置較大,則此欄位會包含已截斷的值。 使用 AllocationAmount64 以進行非常大的配置。 |
AllocationKind |
win:UInt32 |
0x0 - 小型物件配置(配置位於小型物件堆積中)。0x1 - 大型物件配置(配置位於大型物件堆積中)。 |
AllocationAmount64 |
win:UInt64 |
配置大小 (位元組)。 對於非常大的配置來說這個值是正確的。 |
TypeId |
win:Pointer |
MethodTable 的位址。 當有多個在此事件期間所配置的物件類型時,這是對應至上次的物件配置 (該物件造成超過 100 KB 的臨界值) 的 MethodTable 位址。 |
TypeName |
win:UnicodeString |
已配置的類型名稱。 當有多個在此事件期間所配置的物件類型時,這是對應至上次的物件配置 (該物件造成超過 100 KB 的臨界值) 的類型。 |
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 執行個體的唯一 ID。 |
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 |
AppDomain識別碼。 |
ClrInstanceID |
win:UInt16 |
CoreCLR 實例的唯一標識符。 |
DestroyGCHandle 事件
下表說明關鍵字和層級:
引發事件的關鍵字 | 層級 |
---|---|
GCHandleKeyword (0x2) |
告知性 (4) |
下表說明事件資訊:
活動 | 事件識別碼 | 引發的時機 |
---|---|---|
DestroyGCHandle |
31 | GC 句柄已終結。 |
下表說明事件資料:
欄位名稱 | 資料類型 | 描述 |
---|---|---|
HandleID |
win:Pointer |
終結句柄的位址。 |
ClrInstanceID |
win:UInt16 | CoreCLR 實例的唯一標識符。 |
PinObjectAtGCTime 事件
下表說明關鍵字和層級:
引發事件的關鍵字 | 層級 |
---|---|
GCKeyword (0x1) |
詳細資訊 (5) |
下表說明事件資訊:
活動 | 事件識別碼 | 引發的時機 |
---|---|---|
PinObjectAtGCTime |
33 | 在 GC 期間釘選物件。 |
下表說明事件資料:
欄位名稱 | 資料類型 | 描述 |
---|---|---|
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 實例的唯一標識符。 |