次の方法で共有


.NET ランタイム ガベージ コレクション イベント

この記事で説明するイベントは、ガベージ コレクションに関連する情報を収集します。 これらは、ガベージ コレクションが実行された回数、ガベージ コレクション中に解放されたメモリの量の決定など、診断とデバッグに役立ちます。これらのイベントを診断目的で使用する方法の詳細については、「.NET アプリケーションのログ記録とトレース を参照してください。

GCStart_V2 イベント

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

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

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

出来事 イベント ID 発生日時
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 のインスタンスの一意の ID。

GCEnd_V1 イベント

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

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

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

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

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

フィールド名 データ型 形容
Count win:UInt32 ガベージ コレクション n 個。
Depth win:UInt32 収集された世代。
ClrInstanceID win:UInt16 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 CoreCLR のインスタンスの一意の ID。
GenerationSize4 win:UInt64 ピン留めされたオブジェクト ヒープのサイズ (バイト単位)。
TotalPromotedSize4 win:UInt64 最後のコレクションの後にピン留めされたオブジェクト ヒープに残ったバイト数。

GCCreateSegment_V1 イベント

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

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

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

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

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

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

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

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

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

GCFreeSegment_V1 イベント

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

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

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

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

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

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

GCRestartEEBegin_V1 イベント

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

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

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

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

このイベントにはイベント データがありません。

GCRestartEEEnd_V1 イベント

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

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

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

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

このイベントにはイベント データがありません。

GCSuspendEEEnd_V1 イベント

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

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

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

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

このイベントにはイベント データがありません。

GCSuspendEEBegin_V1 イベント

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

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

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

出来事 イベント ID 発生日時
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) Verbose (5)

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

出来事 イベント ID 発生日時
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 のインスタンスの一意の 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 同時実行ガベージ コレクション スレッドが終了しました。

このイベントにはイベント データがありません。

GCFinalizersBegin_V1 イベント

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

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

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

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

このイベントにはイベント データがありません。

GCFinalizersEnd_V1 イベント

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

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

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

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

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

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

SetGCHandle イベント

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

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

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

出来事 イベント ID 発生日時
SetGCHandle 30 GC ハンドルが設定されました。

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

フィールド名 データ型 形容
HandleID win:Pointer 割り当てられたハンドルのアドレス。
ObjectID win:Pointer ハンドルが作成されたオブジェクトのアドレス。
Kind win:UInt32 設定された GC ハンドルの種類。

0x0: WeakShort

0x1: WeakLong

0x2: 強い

0x3: 固定

0x4: 変数

0x5: RefCounted

0x6: 依存

0x7: AsyncPinned

0x8: SizedRef
Generation win:UInt32 ハンドルが作成されたオブジェクトの生成。
AppDomainID win:UInt64 AppDomain ID。
ClrInstanceID win:UInt16 CoreCLR のインスタンスの一意の ID。

DestroyGCHandle イベント

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

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

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

出来事 イベント ID 発生日時
DestroyGCHandle 31 GC ハンドルが破棄されます。

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

フィールド名 データ型 形容
HandleID win:Pointer 破棄されたハンドルのアドレス。
ClrInstanceID win:UInt16 CoreCLR のインスタンスの一意の ID。

PinObjectAtGCTime イベント

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

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

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

出来事 イベント ID 発生日時
PinObjectAtGCTime 33 GC 中にオブジェクトがピン留めされました。

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

フィールド名 データ型 形容
HandleID win:Pointer ハンドルのアドレス。
ObjectID win:Pointer ピン留めされたオブジェクトのアドレス。
ObjectSize win:UInt64 ピン留めされたオブジェクトのサイズ。
TypeName win:UnicodeString ピン留めされたオブジェクトの型の名前。
ClrInstanceID win:UInt16 CoreCLR のインスタンスの一意の ID。

GCTriggered イベント

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

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

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

出来事 イベント ID 発生日時
GCTriggered 35 GC がトリガーされました。

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

フィールド名 データ型 形容
Reason win:UInt32 GC がトリガーされた理由。

0x0: AllocSmall

0x1: 誘発

0x2: LowMemory

0x3: 空

0x4: AllocLarge

0x5: OutOfSpaceSmallObjectHeap

0x6: OutOfSpaceLargeObjectHeap

0x7:InducedNoForce

0x8: ストレス

0x9: InducedLowMemory
ClrInstanceID win:UInt16 CoreCLR のインスタンスの一意の ID。

IncreaseMemoryPressure イベント

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

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

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

出来事 イベント ID 発生日時
IncreaseMemoryPressure 200 メモリ不足が増加しました。

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

フィールド名 データ型 形容
ClrInstanceID win:UInt16 CoreCLR のインスタンスの一意の ID。

DecreaseMemoryPressure イベント

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

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

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

出来事 イベント ID 発生日時
DecreaseMemoryPressure 201 メモリ不足が減少しました。

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

フィールド名 データ型 形容
BytesFreed win:UInt32 解放されたバイト数。
ClrInstanceID win:UInt16 CoreCLR のインスタンスの一意の ID。

GCMarkWithType イベント

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

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

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

出来事 イベント ID 発生日時
GCMarkWithType 202 GC マーク フェーズ中に GC ルートがマークされました。

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

フィールド名 データ型 形容
HeapNum win:UInt32 ヒープ番号。
ClrInstanceID win:UInt16 CoreCLR のインスタンスの一意の ID。
Type win:UInt32 GC ルート型。

0x0: スタック

0x1: ファイナライザー

0x2: ハンドル

0x3: 古い

0x4: SizedRef

0x5: オーバーフロー

Bytes win:UInt64 マークされたバイト数。

GCJoin_V2 イベント

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

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

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

出来事 イベント ID 発生日時
GCJoin_V2 203 GC スレッドが結合されました。

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

フィールド名 データ型 形容
Heap win:UInt32 ヒープ番号
JoinTime win:UInt32 このイベントが結合の開始時または結合の終了時に発生するかどうかを示します (結合の開始に0x0、結合の終了に 0x1)
JoinType win:UInt32 結合の種類。

0x0: 最後の結合

0x1: 参加

0x2: 再起動

0x3: 最初の逆結合

0x4: 逆結合

ClrInstanceID win:UInt16 CoreCLR のインスタンスの一意の ID。