ガベージ コレクション ETW イベント
これらのイベントは、ガベージ コレクションに関連する情報を収集します。 これらは、ガベージ コレクションが実行された回数、ガベージ コレクション中に解放されたメモリの量の決定など、診断とデバッグに役立ちます。
このカテゴリは、次のイベントで構成されます。
- GCStart_V1 イベント
- GCEnd_V1 イベント
- GCHeapStats_V1 イベント
- GCHeapStats_V2 イベント
- GCCreateSegment_V1 イベント
- GCFreeSegment_V1 イベント
- GCRestartEEBegin_V1 イベント
- GCRestartEEEnd_V1 イベント
- GCSuspendEE_V1 イベント
- GCSuspendEEEnd_V1 イベント
- GCAllocationTick_V2 イベント
- GCAllocationTick_V3 イベント
- GCFinalizersBegin_V1 イベント
- GCFinalizersEnd_V1 イベント
- GCCreateConcurrentThread_V1 イベント
- GCTerminateConcurrentThread_V1 イベント
GCStart_V1 イベント
次の表に、キーワードとレベルを示します。 詳細については、「CLR ETW キーワードとレベル」を参照してください。
イベントを発生させるためのキーワード | レベル |
---|---|
GCKeyword (0x1) |
情報 (4) |
次の表に、イベント情報を示します。
出来事 | イベント ID | 発生日時 |
---|---|---|
GCStart_V1 |
1 | ガベージ コレクションが開始されました。 |
イベント データを次の表に示します。
フィールド名 | データ型 | 形容 |
---|---|---|
数える | win:UInt32 | ガベージ コレクション |
深さ | 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 | ガベージ コレクション |
深さ | 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 イベント の
.NET