ガベージ コレクション 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 キーワードおよびレベル」を参照してください。
イベントを発生させるキーワード | 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 | 同時実行ガベージ コレクションスレッドが終了しました。 |
イベント データはありません。
関連項目
.NET