次の方法で共有


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

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

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

GCStart_V1 イベント

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

イベントを発生させるためのキーワード レベル
GCKeyword (0x1) 情報 (4)

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

出来事 イベント ID 発生日時
GCStart_V1 1 ガベージ コレクションが開始されました。

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

フィールド名 データ型 形容
数える 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 イベント

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

イベントを発生させるためのキーワード レベル
GCKeyword (0x1) 情報 (4)

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

出来事 イベント ID 発生日時
GCEnd_V1 2 ガベージ コレクションは終了しました。

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

フィールド名 データ型 形容
数える win:UInt32 ガベージ コレクションn 個。
深さ win:UInt32 収集された世代。
ClrInstanceID win:UInt16 CLR または CoreCLR のインスタンスの一意の ID。

GCHeapStats_V1 イベント

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

イベントを発生させるためのキーワード レベル
GCKeyword (0x1) 情報 (4)

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

出来事 イベント 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 イベント

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

イベントを発生させるためのキーワード レベル
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 CLR または CoreCLR のインスタンスの一意の ID。
GenerationSize4 win:UInt64 ピン留めされたオブジェクト ヒープのサイズ (バイト単位)。
TotalPromotedSize4 win:UInt64 最後のコレクションの後にピン留めされたオブジェクト ヒープに残ったバイト数。

GCCreateSegment_V1 イベント

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

イベントを発生させるためのキーワード レベル
GCKeyword (0x1) 情報 (4)

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

出来事 イベント ID 発生日時
GCCreateSegment_V1 5 新しいガベージ コレクション セグメントが作成されました。 さらに、既に実行されているプロセスでトレースが有効になっている場合、このイベントは既存のセグメントごとに発生します。

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

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

0x1 - ラージ オブジェクト ヒープ。

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

ガベージ コレクターによって割り当てられるセグメントのサイズは実装固有であり、定期的な更新を含め、いつでも変更される可能性があることに注意してください。 アプリでは、特定のセグメント サイズに関する想定や依存を行ったり、セグメント割り当てに使用できるメモリの量を構成したりしないでください。

GCFreeSegment_V1 イベント

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

イベントを発生させるためのキーワード レベル
GCKeyword (0x1) 情報 (4)

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

出来事 イベント ID 発生日時
GCFreeSegment_V1 6 ガベージ コレクション セグメントが解放されました。

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

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

GCRestartEEBegin_V1 イベント

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

イベントを発生させるためのキーワード レベル
GCKeyword (0x1) 情報 (4)

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

出来事 イベント ID 発生日時
GCRestartEEBegin_V1 7 共通言語ランタイムの中断からの再開が開始されました。

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

GCRestartEEEnd_V1 イベント

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

イベントを発生させるためのキーワード レベル
GCKeyword (0x1) 情報 (4)

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

出来事 イベント ID 発生日時
GCRestartEEEnd_V1 3 共通言語ランタイムの中断からの再開は終了しました。

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

GCSuspendEE_V1 イベント

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

イベントを発生させるためのキーワード レベル
GCKeyword (0x1) 情報 (4)

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

出来事 イベント ID 発生日時
GCSuspendEE_V1 9 ガベージ コレクションの実行エンジンの中断の開始。

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

フィールド名 データ型 形容
理由 win:UInt16 0x0 - その他。

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

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

0x3 - コード ピッチング。

0x4 - シャットダウン。

0x5 - デバッガー。

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

GCSuspendEEEnd_V1 イベント

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

イベントを発生させるためのキーワード レベル
GCKeyword (0x1) 情報 (4)

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

出来事 イベント ID 発生日時
GCSuspendEEEnd_V1 8 ガベージ コレクションの実行エンジンの中断の終了。

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

GCAllocationTick_V2 イベント

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

イベントを発生させるためのキーワード レベル
GCKeyword (0x1) Verbose (5)

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

出来事 イベント 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 イベント

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

イベントを発生させるためのキーワード レベル
GCKeyword (0x1) Verbose (5)

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

出来事 イベント 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 (ゼロ) です。
住所 win:Pointer 最後に割り当てられたオブジェクトのアドレス。

GCFinalizersBegin_V1 イベント

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

イベントを発生させるためのキーワード レベル
GCKeyword (0x1) 情報 (4)

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

出来事 イベント ID 発生日時
GCFinalizersBegin_V1 14 ファイナライザーの実行開始。

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

GCFinalizersEnd_V1 イベント

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

イベントを発生させるためのキーワード レベル
GCKeyword (0x1) 情報 (4)

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

出来事 イベント ID 発生日時
GCFinalizersEnd_V1 13 ファイナライザーの実行終了。

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

フィールド名 データ型 形容
数える win:UInt32 実行されたファイナライザーの数。
ClrInstanceID win:UInt16 CLR または 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 同時実行ガベージ コレクション スレッドが終了しました。

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

関連項目

  • CLR ETW イベント の