メモリ パフォーマンス カウンター

パフォーマンス コンソール .NET CLR Memory カテゴリには、ガベージ コレクターに関する情報を提供するカウンターが含まれます。 これらのパフォーマンス カウンターについて、次の表で説明します。

パフォーマンス カウンター

説明

# Bytes in all Heaps

Gen 1 ヒープ サイズGen 2 ヒープ サイズ大きいオブジェクトのヒープ サイズ カウンターの合計が表示されます。 このカウンターは、ガベージ コレクション ヒープに割り当てられている現在のメモリをバイト数で示します。

# GC Handles

現在使用中のガベージ コレクション ハンドルの数を表示します。 ガベージ コレクション ハンドルは、共通言語ランタイムおよびマネージ環境の外部のリソースへのハンドルです。

# Gen 0 Collections

アプリケーションの開始後に、ジェネレーション 0 のオブジェクト (最後に割り当てられた、最も若いオブジェクト) がガベージ コレクションされた回数を表示します。

ジェネレーション 0 ガベージ コレクションは、割り当て要求を満たすために利用できるジェネレーション 0 のメモリが不足したときに発生します。 このカウンターは、ジェネレーション 0 のガベージ コレクションの最後にインクリメントされます。 上位のジェネレーションのガベージ コレクションには、それより下位のすべてのジェネレーションのコレクションが含まれます。 このカウンターは、上位のジェネレーション (ジェネレーション 1 または 2) ガベージ コレクションが発生したときに明示的にインクリメントされます。

このカウンターは、最後に計測された値を表示します。 _Global_ カウンターの値は正確でないので、無視する必要があります。

# Gen 1 Collections

アプリケーションの開始後にジェネレーション 1 のオブジェクトをガベージ コレクションした回数を表示します。

このカウンターは、ジェネレーション 1 のガベージ コレクションの最後にインクリメントされます。 上位のジェネレーションのガベージ コレクションには、それより下位のすべてのジェネレーションのコレクションが含まれます。 このカウンターは、上位のジェネレーション (ジェネレーション 2) のガベージ コレクションが発生したときに明示的にインクリメントされます。

このカウンターは、最後に計測された値を表示します。 _Global_ カウンターの値は正確でないので、無視する必要があります。

# Gen 2 Collections

アプリケーションの開始後にジェネレーション 2 のオブジェクトをガベージ コレクションした回数を表示します。 このカウンターは、ジェネレーション 2 ガベージ コレクション (フル ガベージ コレクションとも呼ばれる) の最後にインクリメントされます。

このカウンターは、最後に計測された値を表示します。 _Global_ カウンターの値は正確でないので、無視する必要があります。

# Induced GC

明示的な GC.Collect 呼び出しが原因でガベージ コレクションが実行されたピーク回数を表示します。 ガベージ コレクターのコレクションの頻度を調整することをお勧めします。

# of Pinned Objects

最後のガベージ コレクションで検出されたピン止めオブジェクトの数を表示します。 ピン止めオブジェクトは、ガベージ コレクターがメモリに移動できないオブジェクトです。 このカウンターは、ガベージ コレクションされるヒープ内のオブジェクトのみを固定で停止した。 たとえば、ジェネレーション 0 のガベージ コレクションは、ジェネレーション 0 のヒープ内のピン止めオブジェクトだけを列挙します。

# of Sink Blocks in use

使用中の同期ブロックの数を表示します。 同期ブロックは、同期情報を格納するためにオブジェクトごとに割り当てられるデータ構造体です。 これらは、マネージ オブジェクトへの弱い参照を保持し、ガベージ コレクターによってをスキャンする必要があります。 同期ブロックには、同期情報だけでなく、COM 相互運用メタデータも格納できます。 このカウンターは、同期プリミティブの頻繁な使用に関係するパフォーマンス問題を示します。

# Total committed Bytes

ガベージ コレクターによって現在コミットされている仮想メモリの量をバイト数で表示します。 コミットされたメモリとは、ディスク ページング ファイル内で領域が予約された物理メモリのことです。

# Total reserved Bytes

仮想メモリの量を、現在ガベージ コレクターによって予約されているバイト数で表示します。 予約済みのメモリとは、ディスクやメイン メモリ ページを使用しないアプリケーション用に予約されている仮想メモリの領域です。

% Time in GC

前回のガベージ コレクション サイクルにガベージ コレクションの実行に費やされた経過時間の割合を表示します。 このカウンターは、通常、ガベージ コレクターがアプリケーションに代わってメモリをコレクションし、メモリの領域を圧縮するために実行した作業量を示します。 このカウンターは、ガベージ コレクションが終了するごとに、更新されます。 このカウンターは、平均値ではなく、最後に計測された値を反映します。

Allocated Bytes/Second

1 秒間にガベージ コレクション ヒープに割り当てられたバイト数を表示します。 このカウンターは、割り当てが行われるたびに更新されるのではなく、ガベージ コレクションが終了するごとに、更新されます。 このカウンターは、全時間を通しての平均値ではなく、最後の 2 回の収集で計測された値の差を収集間隔で割った値が表示されます。

Finalization Survivors

ガベージ コレクションされたオブジェクトのうち、終了待機中のためにコレクションされなかったオブジェクト数を表示します。 これらのオブジェクトが他のオブジェクトへの参照を保持している場合は、参照先のオブジェクトもコレクションされず、このカウンターではカウントされません。 Promoted Finalization-Memory from Gen 0 カウンターは、終了処理のためにコレクションされなかったすべてのメモリを表します。

このカウンターの値は累計値ではありません。カウンター値は、ガベージ コレクションが終了するごとに、各コレクションでの残存オブジェクト数に更新されます。 このカウンターは、アプリケーションが終了処理のために必要とする追加のオーバーヘッドを示します。

Gen 0 heap size

ジェネレーション 0 に割り当てることができる最大バイト数を表示します。ジェネレーション 0 に現在割り当てられているバイト数を示すのではありません。

前回のコレクションの後で行われた割り当てがこのサイズを超えると、ジェネレーション 0 のガベージ コレクションが発生します。 ジェネレーション 0 のサイズは、ガベージ コレクターによって調整され、アプリケーションの実行中に変更できます。 ジェネレーション 0 コレクションの最後には、ジェネレーション 0 ヒープのサイズは 0 バイトになります。 このカウンターは、次のジェネレーション 0 ガベージ コレクションを起動する割り当てのサイズをバイト数で表示します。

このカウンターは、割り当てが行われるたびに更新されるのではなく、ガベージ コレクションが 1 回終了するごとに更新されます。

Gen 0 Promoted Bytes/Sec

ジェネレーション 0 からジェネレーション 1 に昇格される 1 秒あたりのバイト数を表示します。 メモリは、ガベージ コレクションされなかったときに昇格されます。 このカウンターは、1 秒間に作成される、比較的有効期間の長いオブジェクトの数を示します。

このカウンターには、最後の 2 回の収集で計測された値の差を収集間隔で割った値が表示されます。

Gen 1 heap size

ジェネレーション 1 の現在のバイト数を表示します。このカウンターは、ジェネレーション 1 の最大サイズを表示するのではありません。 ジェネレーション 1 では、オブジェクトは直接には割り当てられず、前のジェネレーション 0 ガベージ コレクションから昇格されます。 このカウンターは、割り当てが行われるたびに更新されるのではなく、ガベージ コレクションが 1 回終了するごとに更新されます。

Gen 1 Promoted Bytes/Sec

1 秒間にジェネレーション 1 からジェネレーション 2 に昇格されるバイト数を表示します。 終了待機中という理由だけで昇格されるオブジェクトは、このカウンターには含まれません。

メモリは、ガベージ コレクションされなかったときに昇格されます。 ジェネレーション 2 は最も古いジェネレーションであるため、ジェネレーション 2 からは昇格されません。 このカウンターは、1 秒間に作成される非常に有効期間の長いオブジェクトを示します。

このカウンターには、最後の 2 回の収集で計測された値の差を収集間隔で割った値が表示されます。

Gen 2 heap size

ジェネレーション 2 の現在のバイト数を表示します。 ジェネレーション 2 では、オブジェクトは直接には割り当てられず、前のジェネレーション 1 のガベージ コレクション中にジェネレーション 1 から昇格されます。 このカウンターは、割り当てが行われるたびに更新されるのではなく、ガベージ コレクションが 1 回終了するごとに更新されます。

Large Object Heap size

大きいオブジェクトのヒープの現在のサイズをバイト数で表示します。 約 85,000 バイトを超えるオブジェクトはガベージ コレクターによって大きいオブジェクトとして扱われ、特殊なヒープに直接割り当てられます; これらは、ジェネレーション間のされません。 このカウンターは、割り当てが行われるたびに更新されるのではなく、ガベージ コレクションが 1 回終了するごとに更新されます。

プロセス ID

監視する CLR インスタンス プロセスのプロセス ID を表示します。

Promoted Finalization-Memory from Gen 0

ジェネレーション 0 からジェネレーション 1 に昇格されるメモリのうち、終了待機中という理由だけで昇格されるメモリのバイト数を表示します。 このカウンターは累計値ではありません。最後のガベージ コレクションで計測された値を表示します。

Promoted Memory from Gen 0

ガベージ コレクションされず、ジェネレーション 0 からジェネレーション 1 に昇格されるメモリのバイト数を表示します。 終了待機中という理由だけで昇格されるオブジェクトは、このカウンターには含まれません。 このカウンターは累計値ではありません。最後のガベージ コレクションで計測された値を表示します。

Promoted Memory from Gen 1

ガベージ コレクションされず、ジェネレーション 1 からジェネレーション 2 に昇格されるメモリのバイト数を表示します。 終了待機中という理由だけで昇格されるオブジェクトは、このカウンターには含まれません。 このカウンターは累計値ではありません。最後のガベージ コレクションで計測された値を表示します。 このカウンターは、最後のガベージ コレクションがジェネレーション 0 のコレクションである場合だけ、0 にリセットされます。

参照

関連項目

ランタイム プロファイリング

概念

自動メモリ管理

その他の技術情報

.NET Framework のパフォーマンス カウンター