ガベージ コレクション ETW イベント

これらのイベントは、ガベージ コレクションに関連する情報を収集します。 ガベージ コレクションが実行された回数、ガベージ コレクションの間に解放されたメモリの量など、診断やデバッグに役立つ情報を入手できます。

このカテゴリは、次のイベントで構成されます。

GCStart_V1 イベント

次の表に、キーワードとレベルを示します。 詳細については、「CLR ETW キーワードおよびレベル」を参照してください。

イベントを発生させるキーワード Level
GCKeyword (0x1) 情報提供 (4)

次の表に、イベント情報を示します。

Event イベント ID いつ発生するか
GCStart_V1 1 ガベージ コレクションが開始されました。

次の表に、イベント データを示します。

フィールド名 データ型 説明
Count win:UInt32 n回めのガベージ コレクション。
奥行 win:UInt32 収集されるジェネレーション。
理由 win:UInt32 ガベージ コレクションが発生した理由:

0x0 - 小さなオブジェクト ヒープの割り当て。

0x1 - 強制実行。

0x2 - メモリ不足。

0x3 - 空。

0x4 - 大きなオブジェクト ヒープの割り当て。

0x5 - 領域不足 (小さなオブジェクト ヒープが対象)。

0x6 - 領域不足 (大きなオブジェクト ヒープが対象)。

0x7 - 強制実行されるが、ブロッキングとして強制されない。

0x8 - ストレス テスト。

0x9 - プロセスを監視していたファイナライザー スレッドのメモリが不足し、GC が強制実行される。

0x10 - ユーザー コードによって GC が強制実行され、圧縮 GC となることが要求されました。
種類 win:UInt32 0x0 - バックグラウンド ガベージ コレクションの外部で発生するブロッキング ガベージ コレクション。

0x1 - バックグラウンド ガベージ コレクション。

0x2 - バックグラウンド ガベージ コレクションの実行中に発生するブロッキング ガベージ コレクション。
ClrInstanceID win:UInt16 CLR または CoreCLR のインスタンスの一意の ID。

GCEnd_V1 イベント

次の表に、キーワードとレベルを示します。

イベントを発生させるキーワード Level
GCKeyword (0x1) 情報提供 (4)

次の表に、イベント情報を示します。

Event イベント ID いつ発生するか
GCEnd_V1 2 ガベージ コレクションが終了しました。

次の表に、イベント データを示します。

フィールド名 データ型 説明
Count win:UInt32 n回めのガベージ コレクション。
奥行 win:UInt32 収集されたジェネレーション。
ClrInstanceID win:UInt16 CLR または CoreCLR のインスタンスの一意の ID。

GCHeapStats_V1 イベント

次の表に、キーワードとレベルを示します。

イベントを発生させるキーワード Level
GCKeyword (0x1) 情報提供 (4)

次の表に、イベント情報を示します。

Event イベント ID 説明
GCHeapStats_V1 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 CLR または CoreCLR のインスタンスの一意の ID。

GCHeapStats_V2 イベント

次の表に、キーワードとレベルを示します。

イベントを発生させるキーワード Level
GCKeyword (0x1) 情報提供 (4)

次の表に、イベント情報を示します。

Event イベント 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 CLR または CoreCLR のインスタンスの一意の ID。
GenerationSize4 win:UInt64 固定オブジェクト ヒープのサイズ (バイト単位)。
TotalPromotedSize4 win:UInt64 最後のガベージ コレクションの後に固定オブジェクト ヒープに残ったバイト数。

GCCreateSegment_V1 イベント

次の表に、キーワードとレベルを示します。

イベントを発生させるキーワード Level
GCKeyword (0x1) 情報提供 (4)

次の表に、イベント情報を示します。

Event イベント ID いつ発生するか
GCCreateSegment_V1 5 新しいガベージ コレクション セグメントが作成されました。 既に実行されているプロセスでトレースを有効にした場合は、このイベントが各既存セグメントについて発生します。

次の表に、イベント データを示します。

フィールド名 データ型 説明
Address win:UInt64 セグメントのアドレス。
サイズ win:UInt64 セグメントのサイズ。
種類 win:UInt32 0x0 - 小さなオブジェクト ヒープ。

0x1 - 大きなオブジェクト ヒープ。

0x2 - 読み取り専用ヒープ。
ClrInstanceID win:UInt16 CLR または CoreCLR のインスタンスの一意の ID。

ガベージ コレクターによって割り当てられるセグメントのサイズは実装に固有であり、定期的な更新プログラムによる場合を含め、いつでも変更されることがあります。 アプリでは、セグメント サイズを推測することや、特定のセグメント サイズに依存することを絶対に避けてください。また、セグメントの割り当てに使用可能なメモリの量を構成しようとしてもなりません。

GCFreeSegment_V1 イベント

次の表に、キーワードとレベルを示します。

イベントを発生させるキーワード Level
GCKeyword (0x1) 情報提供 (4)

次の表に、イベント情報を示します。

Event イベント ID いつ発生するか
GCFreeSegment_V1 6 ガベージ コレクション セグメントが解放されました。

次の表に、イベント データを示します。

フィールド名 データ型 説明
Address win:UInt64 セグメントのアドレス。
ClrInstanceID win:UInt16 CLR または CoreCLR のインスタンスの一意の ID。

GCRestartEEBegin_V1 イベント

次の表に、キーワードとレベルを示します。

イベントを発生させるキーワード Level
GCKeyword (0x1) 情報提供 (4)

次の表に、イベント情報を示します。

Event イベント ID いつ発生するか
GCRestartEEBegin_V1 7 共通言語ランタイムの中断からの再開が開始されました。

イベント データはありません。

GCRestartEEEnd_V1 イベント

次の表に、キーワードとレベルを示します。

イベントを発生させるキーワード Level
GCKeyword (0x1) 情報提供 (4)

次の表に、イベント情報を示します。

Event イベント ID いつ発生するか
GCRestartEEEnd_V1 3 共通言語ランタイムの中断からの再開が終了しました。

イベント データはありません。

GCSuspendEE_V1 イベント

次の表に、キーワードとレベルを示します。

イベントを発生させるキーワード Level
GCKeyword (0x1) 情報提供 (4)

次の表に、イベント情報を示します。

Event イベント ID いつ発生するか
GCSuspendEE_V1 9 ガベージ コレクションのための実行エンジンの中断の開始。

次の表に、イベント データを示します。

フィールド名 データ型 説明
原因 win:UInt16 0x0 - その他。

0x1 - ガベージ コレクション。

0x2 - アプリケーション ドメインのシャットダウン。

0x3 - コード ピッチ。

0x4 - シャットダウン。

0x5 - デバッガー。

0x6 - ガベージ コレクションの準備。
Count win:UInt32 その時点の GC カウント。 通常、この後に後続の GC 開始イベントが表示され、そのカウントは、ガベージ コレクション中に、GC インデックスが増えるため、このカウント + 1 になります。
ClrInstanceID win:UInt16 CLR または CoreCLR のインスタンスの一意の ID。

GCSuspendEEEnd_V1 イベント

次の表に、キーワードとレベルを示します。

イベントを発生させるキーワード Level
GCKeyword (0x1) 情報提供 (4)

次の表に、イベント情報を示します。

Event イベント ID いつ発生するか
GCSuspendEEEnd_V1 8 ガベージ コレクションのための実行エンジンの中断の終了。

イベント データはありません。

GCAllocationTick_V2 イベント

次の表に、キーワードとレベルを示します。

イベントを発生させるキーワード Level
GCKeyword (0x1) 情報提供 (4)

次の表に、イベント情報を示します。

Event イベント ID いつ発生するか
GCAllocationTick_V2 10 オブジェクト ヒープごとに約 100 KB (キロバイト)が割り当てられるたびに。 つまり、SOH、LOH、および POH は、割り当てられたバイトを個別に蓄積します。 サーバー GC では、これはヒープごとに行われます。

次の表に、イベント データを示します。

フィールド名 データ型 説明
AllocationAmount win:UInt32 割り当てサイズ (バイト単位)。 この値は、ULONG (4,294,967,295 バイト) の長さより短い割り当ての場合に正確です。 割り当てがこれを超える場合、このフィールドには切り捨てられた値が含まれます。 非常に大きな割り当てには AllocationAmount64 を使用します。
AllocationKind win:UInt32 0x0 - 小さなオブジェクトの割り当て (小さなオブジェクト ヒープへの割り当て)。
0x1 - 大きなオブジェクトの割り当て (大きなオブジェクト ヒープへの割り当て)。
0x2 - 固定されたオブジェクトの割り当て (割り当ては固定オブジェクト ヒープ内にあります)。
ClrInstanceID win:UInt16 CLR または CoreCLR のインスタンスの一意の ID。
AllocationAmount64 win:UInt64 割り当てサイズ (バイト単位)。 この値は非常に大きな割り当ての場合に正確です。
TypeId win:Pointer MethodTable のアドレス。 このイベント中に複数の型のオブジェクトが割り当てられた場合、これは最後に割り当てられたオブジェクト (100 KB のしきい値を超えたオブジェクト) に対応する MethodTable のアドレスです。
TypeName win:UnicodeString 割り当てられた型の名前。 このイベント中に複数の型のオブジェクトが割り当てられた場合は、これは最後に割り当てられたオブジェクト (100 KB のしきい値を超えたオブジェクト) の型です。
HeapIndex win:UInt32 オブジェクトが割り当てられたヒープ。 ワークステーションのガベージ コレクションと共に実行する場合、この値は 0 (ゼロ) になります。

GCAllocationTick_V3 イベント

次の表に、キーワードとレベルを示します。

イベントを発生させるキーワード Level
GCKeyword (0x1) 情報提供 (4)

次の表に、イベント情報を示します。

Event イベント ID いつ発生するか
GCAllocationTick_V2 10 オブジェクト ヒープごとに約 100 KB (キロバイト)が割り当てられるたびに。 つまり、SOH、LOH、および POH は、割り当てられたバイトを個別に蓄積します。 サーバー GC では、これはヒープごとに行われます。

次の表に、イベント データを示します。

フィールド名 データ型 説明
AllocationAmount win:UInt32 割り当てサイズ (バイト単位)。 この値は、ULONG (4,294,967,295 バイト) の長さより短い割り当ての場合に正確です。 割り当てがこれを超える場合、このフィールドには切り捨てられた値が含まれます。 非常に大きな割り当てには AllocationAmount64 を使用します。
AllocationKind win:UInt32 0x0 - 小さなオブジェクトの割り当て (小さなオブジェクト ヒープへの割り当て)。
0x1 - 大きなオブジェクトの割り当て (大きなオブジェクト ヒープへの割り当て)。
0x2 - 固定されたオブジェクトの割り当て (割り当ては固定オブジェクト ヒープ内にあります)。
ClrInstanceID win:UInt16 CLR または CoreCLR のインスタンスの一意の ID。
AllocationAmount64 win:UInt64 割り当てサイズ (バイト単位)。 この値は非常に大きな割り当ての場合に正確です。
TypeId win:Pointer MethodTable のアドレス。 このイベント中に複数の型のオブジェクトが割り当てられた場合、これは最後に割り当てられたオブジェクト (100 KB のしきい値を超えたオブジェクト) に対応する MethodTable のアドレスです。
TypeName win:UnicodeString 割り当てられた型の名前。 このイベント中に複数の型のオブジェクトが割り当てられた場合は、これは最後に割り当てられたオブジェクト (100 KB のしきい値を超えたオブジェクト) の型です。
HeapIndex win:UInt32 オブジェクトが割り当てられたヒープ。 ワークステーションのガベージ コレクションと共に実行する場合、この値は 0 (ゼロ) になります。
Address win:Pointer 最後に割り当てられたオブジェクトのアドレス。

GCFinalizersBegin_V1 イベント

次の表に、キーワードとレベルを示します。

イベントを発生させるキーワード Level
GCKeyword (0x1) 情報提供 (4)

次の表に、イベント情報を示します。

Event イベント ID いつ発生するか
GCFinalizersBegin_V1 14 ファイナライザーの実行の開始。

イベント データはありません。

GCFinalizersEnd_V1 イベント

次の表に、キーワードとレベルを示します。

イベントを発生させるキーワード Level
GCKeyword (0x1) 情報提供 (4)

次の表に、イベント情報を示します。

Event イベント ID いつ発生するか
GCFinalizersEnd_V1 13 ファイナライザーの実行の終了。

次の表に、イベント データを示します。

フィールド名 データ型 説明
Count win:UInt32 実行されたファイナライザーの数。
ClrInstanceID win:UInt16 CLR または CoreCLR のインスタンスの一意の ID。

GCCreateConcurrentThread_V1 イベント

次の表に、キーワードとレベルを示します。

イベントを発生させるキーワード Level
GCKeyword (0x1) 情報提供 (4)
ThreadingKeyword (0x10000) 情報提供 (4)

次の表に、イベント情報を示します。

Event イベント ID いつ発生するか
GCCreateConcurrentThread_V1 11 同時実行ガベージ コレクション スレッドが作成されました。

イベント データはありません。

GCTerminateConcurrentThread_V1 イベント

次の表に、キーワードとレベルを示します。

イベントを発生させるキーワード Level
GCKeyword (0x1) 情報提供 (4)
ThreadingKeyword (0x10000) 情報提供 (4)

次の表に、イベント情報を示します。

Event イベント ID いつ発生するか
GCTerminateConcurrentThread_V1 12 同時実行ガベージ コレクションスレッドが終了しました。

イベント データはありません。

関連項目