PerformanceCounter コンポーネントを使用して、既存の定義済みカウンタまたはカスタム カウンタを読み取ることも、パフォーマンス データをカスタム カウンタに発行する (書き込む) こともできます。
重要 : |
|---|
| NET Framework Version 1.0 および 1.1 では、このクラスは直接の呼び出し元に完全な信頼を要求します。Version 2.0 では、このクラスは PerformanceCounterPermission に特定のアクションを要求します。PerformanceCounterPermission で信頼度の低いコードを許可しないようにすることをお勧めします。読み取りおよび書き込みのパフォーマンス カウンタの機能により、コードでは、実行プロセスの列挙やプロセスの情報の取得などのアクションを実行できます。 |
注意 |
|---|
| PerformanceCounter オブジェクトを信頼度の低いコードに渡すと、セキュリティ問題が発生する可能性があります。PerformanceCounterCategory や PerformanceCounter などのパフォーマンス カウンタを信頼度の低いコードに渡さないでください。 |
パフォーマンス カウンタを読み取るには、PerformanceCounter クラスのインスタンスを作成し、CategoryName プロパティと CounterName プロパティを設定し、オプションで InstanceName プロパティまたは MachineName プロパティを設定します。次に、NextValue メソッドを呼び出して、読み取るパフォーマンス カウンタを取得します。
パフォーマンス カウンタ データを発行するには、PerformanceCounterCategory.Create メソッドを使用して 1 つ以上のカスタム カウンタを作成します。次に、PerformanceCounter クラスのインスタンスを作成し、CategoryName プロパティと CounterName プロパティを設定し、オプションで InstanceName プロパティまたは MachineName プロパティを設定します。次に、IncrementBy メソッド、Increment メソッド、または Decrement メソッドを呼び出すか、RawValue プロパティを設定して、カスタム カウンタの値を変更します。
メモ |
|---|
| Increment メソッド、IncrementBy メソッド、および Decrement メソッドでは、インタロックを使用してカウンタの値を更新します。これにより、マルチスレッドやマルチプロセスの状況でもカウンタ値を正確に維持できますが、パフォーマンスの低下が生じます。インタロックを使用した処理による正確性が不要な場合は、RawValue プロパティを直接更新することで、パフォーマンスを最大 5 倍に高めることができます。ただし、マルチスレッドの場合、カウンタ値の更新の一部が無視され、データが不正確になる可能性があります。 |
カウンタは、パフォーマンス データを収集する機構です。すべてのカウンタの名前がレジストリに格納され、各カウンタはシステム機能の特定の領域に関連します。例には、プロセッサのビジー時間、メモリの使用状況、ネットワーク接続で受信したバイト数などが含まれます。
各カウンタは、名前と場所で一意に識別されます。ファイル パスが、ドライブ名、ディレクトリ名、1 つ以上のサブディレクトリ名、およびファイル名で構成されるように、カウンタ情報も、コンピュータ名、カテゴリ名、カテゴリ インスタンス名、カウンタ名の 4 つの要素で構成されます。
カウンタ情報には、カウンタがデータを測定する対象のカテゴリまたはパフォーマンス オブジェクトを含める必要があります。コンピュータのカテゴリには、プロセッサ、ディスク、メモリなどの物理コンポーネントが含まれます。プロセスやスレッドなどのシステム カテゴリもあります。各カテゴリはコンピュータ内の機能要素に関連し、それぞれに標準カウンタのセットが割り当てられます。これらのオブジェクトは、Windows 2000 システム モニタの [カウンタの追加] ダイアログ ボックスの [パフォーマンス オブジェクト] ボックスの一覧に表示されます。カウンタ パスにはこれらを含める必要があります。パフォーマンス データは、関連するカテゴリによってグループ化されます。
場合によっては、同じカテゴリの複数のコピーが存在します。たとえば、複数のプロセスとスレッドが同時に実行されることがあります。また、複数のプロセッサが搭載されているコンピュータもあります。カテゴリのコピーをカテゴリ インスタンスと呼びます。インスタンスごとに、標準カウンタのセットが割り当てられます。1 つのカテゴリに複数のインスタンスがある場合は、カウンタ情報でインスタンスを明確化する必要があります。
必要な計算を実行するために初期値または前の値が必要な場合、このようなカウンタのパフォーマンス データを取得するには、NextValue メソッドを 2 回呼び出して、返された情報をアプリケーションの要件に応じて使用します。
Windows 98, Windows Millennium Edition プラットフォームメモ :
パフォーマンス カウンタは、Windows 98 または Windows Millennium Edition (Me) ではサポートされていません。