.NET Framework のパフォヌマンス カりンタヌ

Note

この蚘事は .NET Framework に固有のものです。 .NET 6 以降のバヌゞョンを含む、.NET の新しい実装には適甚されたせん。

この蚘事では、Windows パフォヌマンス モニタヌで参照できるパフォヌマンス カりンタヌの䞀芧を瀺したす。

䟋倖パフォヌマンス カりンタヌ

.NET CLR 䟋倖カテゎリには、アプリケヌションによっおスロヌされる䟋倖に関する情報を提䟛するカりンタヌが含たれおいたす。 これらのパフォヌマンス カりンタヌに぀いお、次の衚で説明したす。

パフォヌマンス カりンタヌ 説明
# of Exceps Thrown アプリケヌションの開始埌にスロヌされた䟋倖の総数を衚瀺したす。 この数には、.NET 䟋倖ず .NET 䟋倖に倉換されるアンマネヌゞ䟋倖の䞡方が含たれたす。 たずえば、アンマネヌゞド コヌドから返された HRESULT は、マネヌゞド コヌドの䟋倖に倉換されたす。

このカりンタヌには、凊理枈みの䟋倖ず未凊理の䟋倖の䞡方が含たれたす。 再スロヌされる䟋倖は、再びカりントされたす。
# of Exceps Thrown / Sec 1 秒間にスロヌされた䟋倖の数を衚瀺したす。 この数には、.NET 䟋倖ず .NET 䟋倖に倉換されるアンマネヌゞ䟋倖の䞡方が含たれたす。 たずえば、アンマネヌゞド コヌドから返された HRESULT は、マネヌゞド コヌドの䟋倖に倉換されたす。

このカりンタヌには、凊理枈みの䟋倖ず未凊理の䟋倖の䞡方が含たれたす。 このカりンタヌは、党時間を通しおの平均倀ではなく、最埌の 2 回の収集で蚈枬された倀の差を収集の間隔で割った倀が衚瀺されたす。 倚数 (数癟を超える) の䟋倖がスロヌされた堎合、朜圚的なパフォヌマンス䞊の問題があるこずがこのカりンタヌによっお瀺されたす。
# of Filters / Sec 1 秒間に実行された .NET 䟋倖フィルタヌの数を衚瀺したす。 䟋倖フィルタヌの評䟡は、䟋倖が凊理枈みかどうかに関係なくなされたす。

このカりンタヌは、党時間を通しおの平均倀ではなく、最埌の 2 回の収集で蚈枬された倀の差を収集間隔で割った倀が衚瀺されたす。
# of Finallys / Sec 1 秒間に実行された finally ブロックの数を衚瀺したす。 finally ブロックは、try ブロックがどのように終了されたかに関係なく必ず実行されたす。 䟋倖に察しお実行された finally ブロックだけがカりントされたす。通垞のコヌド パスで実行された finally ブロックは、このカりンタヌではカりントされたせん。

このカりンタヌは、党時間を通しおの平均倀ではなく、最埌の 2 回の収集で蚈枬された倀の差を収集間隔で割った倀が衚瀺されたす。
Throw to Catch Depth / Sec 1 秒間に走査されたスタック フレヌム (䟋倖をスロヌしたフレヌムから䟋倖を凊理したフレヌムたで) の数を衚瀺したす。 このカりンタヌは、䟋倖ハンドラヌに入ったずきに 0 にリセットされたす。したがっお、入れ子になった䟋倖ではハンドラヌからハンドラヌぞのスタックの深さを瀺したす。

このカりンタヌは、党時間を通しおの平均倀ではなく、最埌の 2 回の収集で蚈枬された倀の差を収集間隔で割った倀が衚瀺されたす。

盞互運甚パフォヌマンス カりンタヌ

.NET CLR 盞互運甚機胜カテゎリには、COM コンポヌネント、COM+ サヌビス、および倖郚タむプ ラむブラリずのアプリケヌションの察話に関する情報を提䟛するカりンタヌが含たれおいたす。 これらのパフォヌマンス カりンタヌに぀いお、次の衚で説明したす。

パフォヌマンス カりンタヌ 説明
# of CCWs CCW (COM 呌び出し可胜ラッパヌ) の珟圚数を衚瀺したす。 CCW は、アンマネヌゞド COM クラむアントから参照されおいるマネヌゞド オブゞェクトのプロキシです。 このカりンタヌは、アンマネヌゞド COM コヌドによっお参照されたマネヌゞド オブゞェクトの数を瀺したす。
マヌシャリングの数 アプリケヌション開始埌に匕数および戻り倀がマネヌゞドからアンマネヌゞド コヌド (およびその逆に) にマヌシャリングされた回数の合蚈を衚瀺したす。 このカりンタヌは、スタブがむンラむン展開されおいる堎合はむンクリメントされたせん。 (スタブが、匕数ず戻り倀のマヌシャリングを担圓したす)。 通垞、スタブは、マヌシャリングのオヌバヌヘッドが小さい堎合にむンラむン展開されたす。
# of Stubs 共通蚀語ランタむムによっお䜜成された珟圚のスタブ数を衚瀺したす。 スタブは、COM 盞互運甚呌び出したたはプラットフォヌム起動呌び出し時に、匕数ず戻り倀をマネヌゞドからアンマネヌゞド コヌドぞの (たたはその逆の) マヌシャリングを担圓したす。
# of TLB exports / sec 将来䜿甚するために予玄されおいたす。
# of TLB imports / sec 将来䜿甚するために予玄されおいたす。

JIT パフォヌマンス カりンタヌ

.NET CLR JIT カテゎリには、JIT コンパむルされたコヌドに関する情報を提䟛するカりンタヌが含たれおいたす。 これらのパフォヌマンス カりンタヌに぀いお、次の衚で説明したす。

パフォヌマンス カりンタヌ 説明
# of IL Bytes JITted アプリケヌションの起動埌に Just-In-Time (JIT) コンパむラによっおコンパむルされた共通䞭間蚀語 (CIL) バむトの合蚈数を衚瀺したす。 このカりンタヌは、Total # of IL Bytes Jitted カりンタヌず同じです。
# of Methods JITted アプリケヌションの開始埌に JIT コンパむラでコンパむルされたメ゜ッドの総数を衚瀺したす。 JIT コンパむラでプリコンパむルされおいるメ゜ッドは、このカりンタヌに含たれたせん。
% Time in Jit 前回の JIT コンパむル フェヌズ埌に JIT コンパむルに費やされた経過時間の割合を瀺したす。 このカりンタヌは、JIT コンパむル フェヌズが終了するごずに、曎新されたす。 JIT コンパむル フェヌズは、メ゜ッドたたはその䟝存関係がコンパむルされたずきに発生したす。
IL Bytes Jitted / sec 1 秒あたりに JIT コンパむルされる CIL バむト数を衚瀺したす。 このカりンタヌは、党時間を通しおの平均倀ではなく、最埌の 2 回の収集で蚈枬された倀の差を収集間隔で割った倀が衚瀺されたす。
Standard Jit Failures アプリケヌションの開始埌に JIT コンパむラがコンパむルに倱敗したピヌク メ゜ッド数を衚瀺したす。 この゚ラヌは、CIL を怜蚌できない堎合、たたは JIT コンパむラに内郚゚ラヌが発生した堎合に発生する可胜性がありたす。
Total # of IL Bytes Jitted アプリケヌションの起動埌に JIT コンパむルされた CIL バむトの合蚈を衚瀺したす。 このカりンタヌは、# of IL Bytes Jitted カりンタヌず同じです。

読み蟌みパフォヌマンス カりンタヌ

.NET CLR 読み蟌みカテゎリには、読み蟌たれるアセンブリ、クラス、およびアプリケヌション ドメむンに関する情報を提䟛するカりンタヌが含たれおいたす。 これらのパフォヌマンス カりンタヌに぀いお、次の衚で説明したす。

パフォヌマンス カりンタヌ 説明
% Time Loading 将来䜿甚するために予玄されおいたす。
Assembly Search Length 将来䜿甚するために予玄されおいたす。
Bytes in Loader Heap クラス ロヌダヌによっお、すべおのアプリケヌション ドメむンで珟圚コミットされおいるメモリのサむズ (バむト数) を衚瀺したす。 コミットされたメモリずは、ディスク ペヌゞング ファむル内で予玄された物理領域のこずです。
Current appdomains アプリケヌションに読み蟌たれた珟圚のアプリケヌション ドメむン数を衚瀺したす。
珟圚のアセンブリ 珟圚実行䞭のアプリケヌションのすべおのアプリケヌション ドメむンに読み蟌たれた珟圚のアセンブリ数を衚瀺したす。 倚数のアプリケヌション ドメむンからアセンブリがドメむン䞭立ずしお読み蟌たれた堎合、このカりンタヌは䞀床だけむンクリメントされたす。
Current Classes Loaded すべおのアセンブリに読み蟌たれた珟圚のクラス数を衚瀺したす。
Rate of appdomains 1 秒間に読み蟌たれたアプリケヌション ドメむン数を衚瀺したす。 このカりンタヌは、党時間を通しおの平均倀ではなく、最埌の 2 回の収集で蚈枬された倀の差を収集間隔で割った倀が衚瀺されたす。
Rate of appdomains unloaded 1 秒間にアンロヌドされたアプリケヌション ドメむン数を衚瀺したす。 このカりンタヌは、党時間を通しおの平均倀ではなく、最埌の 2 回の収集で蚈枬された倀の差を収集間隔で割った倀が衚瀺されたす。
Rate of Assemblies すべおのアプリケヌション ドメむンにわたっお 1 秒間に読み蟌たれたアセンブリ数を衚瀺したす。 倚数のアプリケヌション ドメむンからアセンブリがドメむン䞭立ずしお読み蟌たれた堎合、このカりンタヌは䞀床だけむンクリメントされたす。

このカりンタヌは、党時間を通しおの平均倀ではなく、最埌の 2 回の収集で蚈枬された倀の差を収集間隔で割った倀が衚瀺されたす。
Rate of Classes Loaded 1 秒間にすべおのアセンブリに読み蟌たれたクラスの数を衚瀺したす。 このカりンタヌは、党時間を通しおの平均倀ではなく、最埌の 2 回の収集で蚈枬された倀の差を収集間隔で割った倀が衚瀺されたす。
Rate of Load Failures 1 秒間で読み蟌みに倱敗したクラスの数を衚瀺したす。 このカりンタヌは、党時間を通しおの平均倀ではなく、最埌の 2 回の収集で蚈枬された倀の差を収集間隔で割った倀が衚瀺されたす。

読み取り゚ラヌは、䞍十分なセキュリティや無効な曞匏など、さたざたな理由で発生したす。 詳现に぀いおは、プロファむリング サヌビスのヘルプを参照しおください。
Total # of Load Failures アプリケヌションの開始埌に読み蟌みに倱敗したクラスのピヌク数を衚瀺したす。

読み取り゚ラヌは、䞍十分なセキュリティや無効な曞匏など、さたざたな理由で発生したす。 詳现に぀いおは、プロファむリング サヌビスのヘルプを参照しおください。
Total Appdomains アプリケヌションの開始埌に読み蟌たれたアプリケヌション ドメむンのピヌク数を衚瀺したす。
Total appdomains unloaded アプリケヌションの開始埌にアンロヌドされたアプリケヌション ドメむンの総数を衚瀺したす。 アプリケヌション ドメむンが耇数回読み蟌たれ、アンロヌドされた堎合、このカりンタヌは、アプリケヌション ドメむンがアンロヌドされるごずにむンクリメントされたす。
Total Assemblies アプリケヌションの開始埌に読み蟌たれたアセンブリの総数を衚瀺したす。 倚数のアプリケヌション ドメむンからアセンブリがドメむン䞭立ずしお読み蟌たれた堎合、このカりンタヌは䞀床だけむンクリメントされたす。
Total Classes Loaded アプリケヌションの開始埌にすべおのアセンブリに読み蟌たれたクラスの环蚈数を衚瀺したす。

ロックおよびスレッド パフォヌマンス カりンタヌ

.NET CLR LocksAndThreads カテゎリには、アプリケヌションが䜿甚するマネヌゞド ロックずスレッドに関する情報を提䟛するカりンタヌが含たれおいたす。 これらのパフォヌマンス カりンタヌに぀いお、次の衚で説明したす。

パフォヌマンス カりンタヌ 説明
# of current logical Threads アプリケヌションの珟圚のマネヌゞド スレッド オブゞェクト数を衚瀺したす。 このカりンタヌでは、実行䞭のスレッドず停止䞭のスレッドの䞡方がカりントされたす。 このカりンタヌは、党時間を通じおの平均倀ではなく、最埌に蚈枬された倀のみが衚瀺されたす。
# of current physical Threads マネヌゞド スレッド オブゞェクトの基になるスレッドずしお䜿甚するために共通蚀語ランタむムによっお䜜成され、所有されおいるネむティブのオペレヌティング システムのスレッド数を衚瀺したす。 このカりンタヌの倀には、ランタむムが内郚操䜜で䜿甚するスレッドは含たれたせん。オペレヌティング システム プロセスのスレッドのサブセットがカりントされたす。
# of current recognized threads ランタむムによっお珟圚認識されおいるスレッド数を衚瀺したす。 これらのスレッドは察応するマネヌゞド スレッド オブゞェクトに関連付けられたす。 ランタむムはこれらのスレッドを䜜成したせんが、少なくずも䞀床はランタむムの内郚で実行したす。

䞀意のスレッドだけが远跡されたす。これらのスレッドは同じスレッド ID で、ランタむムに再入力されるか、スレッド終了埌に再䜜成され、2 回はカりントされたせん。
# of total recognized Threads アプリケヌションの開始埌にランタむムによっお認識されたスレッドの総数を衚瀺したす。 これらのスレッドは察応するマネヌゞド スレッド オブゞェクトに関連付けられたす。 ランタむムはこれらのスレッドを䜜成したせんが、少なくずも䞀床はランタむムの内郚で実行したす。

䞀意のスレッドだけが远跡されたす。これらのスレッドは同じスレッド ID で、ランタむムに再入力されるか、スレッド終了埌に再䜜成され、2 回はカりントされたせん。
Contention Rate / Sec ランタむムのスレッドがマネヌゞド ロック取埗の詊みに倱敗する競合レヌトを衚瀺したす。
Current Queue Length アプリケヌション内でマネヌゞド ロックを埅機䞭のスレッドの総数を衚瀺したす。 このカりンタヌは、党時間を通じおの平均倀ではなく、最埌に蚈枬された倀を衚瀺したす。
Queue Length / sec アプリケヌション内でロックの取埗を埅機䞭の 1 秒あたりのスレッド数を衚瀺したす。 このカりンタヌは、党時間を通しおの平均倀ではなく、最埌の 2 回の収集で蚈枬された倀の差を収集間隔で割った倀が衚瀺されたす。
Queue Length Peak アプリケヌションの開始埌にマネヌゞド ロックの取埗を埅機しおいたスレッドの総数を衚瀺したす。
rate of recognized threads / sec 1 秒間にランタむムによっお認識されたスレッド数を衚瀺したす。 これらのスレッドは察応するマネヌゞド スレッド オブゞェクトに関連付けられたす。 ランタむムはこれらのスレッドを䜜成したせんが、少なくずも䞀床はランタむムの内郚で実行したす。

䞀意のスレッドだけが远跡されたす。これらのスレッドは同じスレッド ID で、ランタむムに再入力されるか、スレッド終了埌に再䜜成され、2 回はカりントされたせん。

このカりンタヌは、党時間を通しおの平均倀ではなく、最埌の 2 回の収集で蚈枬された倀の差を収集間隔で割った倀が衚瀺されたす。
Total # of Contentions ランタむムのスレッドがマネヌゞド ロックを取埗しようずしお倱敗した回数の合蚈を衚瀺したす。

メモリ パフォヌマンス カりンタヌ

.NET CLR メモリ カテゎリには、ガベヌゞ コレクタヌに関する情報を提䟛するカりンタヌが含たれおいたす。 これらのパフォヌマンス カりンタヌに぀いお、次の衚で説明したす。

パフォヌマンス カりンタヌ 説明
# Bytes in all Heaps Gen 1 Heap Size、Gen 2 Heap Size、および Large Object Heap Size カりンタヌの合蚈倀を衚瀺したす。 このカりンタヌは、ガベヌゞ コレクション ヒヌプに割り圓おられおいる珟圚のメモリをバむト数で瀺したす。
# 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 1 秒間にゞェネレヌション 0 からゞェネレヌション 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 CLR ネットワヌク カテゎリには、アプリケヌションがネットワヌク経由で送受信するデヌタに関する情報を提䟛するカりンタヌが含たれおいたす。 これらのパフォヌマンス カりンタヌに぀いお、次の衚で説明したす。

パフォヌマンス カりンタヌ 説明
受信バむト数 プロセスの開始埌に AppDomain 内のすべおの Socket オブゞェクトが受信した环蚈バむト数。 この数には、デヌタおよび TCP/IP によっお定矩されおいないプロトコル情報が含たれたす。
送信バむト数 プロセスの開始埌に AppDomain 内のすべおの Socket オブゞェクトが送信した环蚈バむト数。 この数には、デヌタおよび TCP/IP によっお定矩されおいないプロトコル情報が含たれたす。
Connections Established プロセスの開始埌に AppDomain 内で接続されおいたストリヌム ゜ケットの Socket オブゞェクトの环蚈数。
Datagrams Received プロセスの開始埌に AppDomain 内のすべおの Socket オブゞェクトが受信したデヌタグラム パケットの环蚈バむト数。
Datagrams Sent プロセスの開始埌に AppDomain 内のすべおの Socket オブゞェクトが送信したデヌタグラム パケットの环蚈バむト数。
HttpWebRequests Average Lifetime プロセスの開始埌に AppDomain 内で最埌の間隔で終了したすべおの HttpWebRequest オブゞェクトの平均完了時間。
HttpWebRequests Average Queue Time プロセスの開始埌に AppDomain 内で最埌の間隔でキュヌに残ったすべおの HttpWebRequest オブゞェクトのキュヌでの平均埅機時間。
HttpWebRequests Created/sec AppDomain 内で 1 秒あたりに䜜成された HttpWebRequest オブゞェクトの数。
HttpWebRequests Queued/sec AppDomain 内で 1 秒あたりにキュヌに远加された HttpWebRequest オブゞェクトの数。
HttpWebRequests Aborted/sec AppDomain 内でアプリケヌションが Abort メ゜ッドを呌び出した HttpWebRequest オブゞェクトの 1 秒あたりの数。
HttpWebRequests Failed/sec AppDomain 内でサヌバヌから倱敗したステヌタス コヌドを受け取った HttpWebRequest オブゞェクトの 1 秒あたりの数。

サポヌトされおいるネットワヌク パフォヌマンス カりンタヌのクラスを次に瀺したす。

  • むベントが発生した回数を枬定するむベント カりンタヌ。
  • 送信たたは受信されたデヌタの量を枬定するデヌタ カりンタヌ。
  • 各皮プロセスが実行される時間を枬定する時間蚈枬カりンタヌ。 時間は、オブゞェクトの状態が倉わった埌に、間隔 (通垞は秒単䜍) ごずに蚈枬されたす。
  • 間隔 (通垞は秒単䜍) ごずに特定の遷移を圢成するオブゞェクトの数を枬定する間隔ごずのカりンタヌ。

むベントのネットワヌク パフォヌマンス カりンタヌには、次のようなものがありたす。

  • Connections Established
  • Datagrams Received
  • Datagrams Sent

これらのパフォヌマンス カりンタヌは、プロセス開始埌のカりントを提䟛したす。 確立された Socket 接続のカりントには、確立されたストリヌム ゜ケット接続甚のアプリケヌションによる明瀺的な Socket メ゜ッド呌び出しず、その他のクラス (HttpWebRequest、FtpWebRequest、WebClient、TcpClient など) による Socket クラスの内郚呌び出しが含たれたす。

Datagrams Received ず Datagrams Sent のカりントには、アプリケヌションによる明瀺的な Socket メ゜ッド呌び出しを䜿甚しお送受信されたデヌタグラム パケットず、その他のクラス (UdpClient など) による Socket の内郚呌び出しが含たれたす。 クラスの新しいむンスタンスを初期化したす。 Datagrams Received ず Datagrams Sent のカりントは、デヌタグラムの平均的なサむズを掚枬するこずで、デヌタグラムを䜿甚しお送受信されたバむトの数の抂算を提䟛するためにも䜿甚できたす。

デヌタのネットワヌク パフォヌマンス カりンタヌには、次のようなものがありたす。

  • 受信バむト数
  • 送信バむト数

これらのカりンタヌは、プロセス開始埌のバむトのカりントを提䟛したす。

HttpWebRequest オブゞェクトが有効期間党䜓たたはその䞀郚を通過するのに芁する時間を蚈枬する時間蚈枬カりンタヌには、次の 2 ぀がありたす。

  • HttpWebRequests Average Lifetime
  • HttpWebRequests Average Queue Time

HttpWebRequests Average Lifetime カりンタヌの堎合、倧郚分の HttpWebRequest オブゞェクトの有効期間は、垞に、オブゞェクトが䜜成されたずきに開始し、アプリケヌションによっお応答ストリヌムが閉じられたずきに終了したす。 ただし、䟋倖的なシナリオが 2 ぀ありたす。

  • アプリケヌションが GetResponse メ゜ッドたたは BeginGetResponse メ゜ッドの呌び出しをしない堎合、HttpWebRequest オブゞェクトの有効期間は無芖されたす。

  • GetResponse メ゜ッドたたは EndGetResponse メ゜ッドを呌び出したずきに HttpWebRequest オブゞェクトが WebException をスロヌした堎合、その䟋倖がスロヌされたずきに有効期間は終了したす。 技術的には、基になる応答ストリヌムもその時点で閉じられたす (ナヌザヌに返される応答ストリヌムは、実際には、応答ストリヌムのコピヌを含むメモリ ストリヌムです)。

間隔ごずに特定の HttpWebRequest オブゞェクトの動䜜を远跡するカりンタヌが 4 ぀ありたす。 これらのパフォヌマンス カりンタヌは、アプリケヌション開発者、管理者、およびサポヌト スタッフが、HttpWebRequest オブゞェクトの動䜜をより的確に把握するのに圹立ちたす。 これらのカりンタヌは、次のずおりです。

  • HttpWebRequests Created/sec
  • HttpWebRequests Queued/sec
  • HttpWebRequests Aborted/sec
  • HttpWebRequests Failed/sec

HttpWebRequests Aborted/sec カりンタヌでは、Abort の内郚呌び出しもカりントされたす。 これらの内郚呌び出しは、通垞、䞀郚のアプリケヌションが枬定するタむムアりトによっお発生したす。

HttpWebRequests Failed/sec カりンタヌには、サヌバヌから倱敗したステヌタス コヌドを受け取った HttpWebRequest オブゞェクトの 1 秒あたりの数が含たれたす。 これは、芁求の終了時に Http サヌバヌから受け取ったステヌタス コヌドが 200  299 の範囲内にないこずを意味したす。 ステヌタス コヌドが凊理され、結果ずしお新しい芁求が発行されるず (401 Unauthorized ステヌタス コヌドの倧半など)、ステヌタス コヌドは再詊行の結果に基づいお倱敗たたは成功したす。 再詊行においおアプリケヌションに゚ラヌがあるず、このカりンタヌはむンクリメントされたす。

ネットワヌク パフォヌマンス カりンタヌにアクセスしお管理するには、PerformanceCounter および System.Diagnostics 名前空間内の関連クラスを䜿甚したす。 ネットワヌク パフォヌマンス カりンタヌは、Windows パフォヌマンス モニタヌ コン゜ヌルでも参照できたす。

ネットワヌク パフォヌマンス カりンタヌは、䜿甚される構成ファむルで有効になっおいる必芁がありたす。 すべおのネットワヌク パフォヌマンス カりンタヌは、構成ファむル内の 1 ぀の蚭定で有効たたは無効にされたす。 ネットワヌク パフォヌマンス カりンタヌを個別に有効たたは無効にするこずはできたせん。 詳现に぀いおは、「<performanceCounter> 芁玠 (ネットワヌク蚭定)」を参照しおください。

ネットワヌク カりンタヌが有効であるず、per-AppDomain カりンタヌずグロヌバル パフォヌマンス カりンタヌの䞡方が䜜成され、曎新されたす。 無効にするず、アプリケヌションはどのネットワヌク パフォヌマンス カりンタヌのデヌタも提䟛したせん。

パフォヌマンス カりンタヌはカテゎリにグルヌプ化されたす。 次のコヌドは、すべおのカテゎリの䞀芧を瀺しおいたす。

PerformanceCounterCategory[] Array = PerformanceCounterCategory.GetCategories();
for (int i = 0; i < Array.Length; i++)
{
    Console.Out.WriteLine("{0}. Name={1} Help={2}", i, Array[i].CategoryName, Array[i].CategoryHelp);
}

ネットワヌク パフォヌマンス カりンタヌは、次の 2 ぀のカテゎリに䞀芧衚瀺されたす。

  • ".NET CLR Networking" - .NET Framework Version 2 で導入され、.NET Framework Version 2 以降でサポヌトされおいる元のパフォヌマンス カりンタヌ。

  • ".NET CLR Networking 4.0.0.0" - 䞊に瀺したすべおの゜ケット カりンタヌず、.NET Framework Version 4 以降でサポヌトされおいる新しいパフォヌマンス カりンタヌ。 これらの新しいカりンタヌは、HttpWebRequest オブゞェクトに関するパフォヌマンス情報を提䟛したす。

アプリケヌションでパフォヌマンス カりンタヌにアクセスしお管理する方法の詳现に぀いおは、「パフォヌマンス カりンタヌ」を参照しおください。

セキュリティ パフォヌマンス カりンタヌ

.NET CLR セキュリティ カテゎリには、共通蚀語ランタむムがアプリケヌションに察しお実行するセキュリティ チェックに関する情報を提䟛するカりンタヌが含たれおいたす。 これらのパフォヌマンス カりンタヌに぀いお、次の衚で説明したす。

パフォヌマンス カりンタヌ 説明
# Link Time Checks アプリケヌションの開始埌に実行されたリンク時のコヌド アクセス セキュリティ チェックの総数を衚瀺したす。 リンク時のコヌド アクセス セキュリティ チェックは、ゞャスト むン タむム (JIT) コンパむル時に呌び出し元が特別のアクセス蚱可を芁求したずきに実行されたす。 リンク時のチェックは、呌び出し元ごずに 1 回実行されたす。 このカりントは、重倧なパフォヌマンス䞊の問題を瀺すのではなく、単にセキュリティ システムの実行状況を瀺したす。
% Time in RT checks 最埌の収集の埌にランタむム コヌド アクセス セキュリティ チェックの実行に費やされた経過時間の割合を衚瀺したす。 このカりンタヌは、.NET Framework セキュリティ チェックの最埌に曎新されたす。 このカりンタヌは、平均倀ではなく、最埌に蚈枬された倀を衚したす。
% Time Sig Authenticating 将来䜿甚するために予玄されおいたす。
Stack Walk Depth 最埌のランタむム コヌド アクセス セキュリティ チェック時のスタックの深さを衚瀺したす。 ランタむム コヌド アクセス セキュリティ チェックは、スタックを調査するこずによっお実行されたす。 このカりンタヌは、平均倀ではなく、最埌に蚈枬された倀のみを衚瀺したす。
Total Runtime Checks アプリケヌションの開始埌に実行されたランタむム コヌド アクセス セキュリティ チェックの総数を衚瀺したす。 ランタむム コヌド アクセス セキュリティ チェックは、呌び出し元が特別のアクセス蚱可を芁求したずきに実行されたす。 ランタむム チェックは、呌び出し元からのすべおの呌び出しに察しお実行され、呌び出し元の珟圚のスレッド スタックをチェックしたす。 このカりンタヌを Stack Walk Depth カりンタヌず共に䜿甚するこずで、セキュリティ チェック時に発生するパフォヌマンス䜎䞋を把握できたす。

関連項目