PerformanceCounterCategory クラス
アセンブリ: System (system.dll 内)


![]() |
---|
このクラスに適用される HostProtectionAttribute 属性の Resources プロパティの値は、Synchronization または SharedState です。HostProtectionAttribute は、デスクトップ アプリケーション (一般的には、アイコンをダブルクリック、コマンドを入力、またはブラウザに URL を入力して起動するアプリケーション) には影響しません。詳細については、HostProtectionAttribute クラスのトピックまたは「SQL Server プログラミングとホスト保護属性」を参照してください。 |
![]() |
---|
パフォーマンス カウンタを作成または削除する場合、名前付きミューテックスを使用して基になるコードを同期する必要があります。高度な特権が付与されたアプリケーションが名前付きミューテックスをロックしている場合、パフォーマンス カウンタを作成または削除しようとしても、ロックが解除されるまでアプリケーションは応答しません。この問題を回避するために、信頼関係のないコードには UnmanagedCode アクセス許可を付与しないでください。また、UnmanagedCode アクセス許可を使用すると、他のアクセス許可をバイパスできる可能性もあるため、信頼度の高いコードにだけこのアクセス許可を付与する必要があります。
|
PerformanceCounterCategory インスタンスの CategoryName プロパティは、パフォーマンス ビューワ アプリケーションの [カウンタの追加] ダイアログ ボックスの [パフォーマンス オブジェクト] ボックスに表示されます。
PerformanceCounterCategory クラスには、コンピュータ上のカウンタおよびカテゴリとやり取りするいくつかのメソッドがあります。Create メソッドを使用すると、カスタム カテゴリを定義できます。Delete メソッドを使用すると、コンピュータからカテゴリを削除できます。GetCategories メソッドを使用すると、カテゴリの一覧を表示できます。ReadCategory を使用すると、単一カテゴリに関連付けられているすべてのカウンタとインスタンスのデータを取得できます。
パフォーマンス カウンタは、アプリケーションに関するパフォーマンス データを発行します。カテゴリには、物理的なコンポーネント (プロセッサ、ディスク、メモリなど) とシステム オブジェクト (プロセス、スレッドなど) が含まれます。同じパフォーマンス オブジェクトに関連するシステム カウンタは、共通のフォーカスを指すカテゴリにグループ化されます。PerformanceCounter クラスのインスタンスを作成するときは、まずコンポーネントがやり取りするカテゴリを指示し、次にカテゴリからカウンタを選択します。
たとえば、Windows カウンタ カテゴリの 1 つに、Memory カテゴリがあります。このカテゴリにあるシステム カウンタは、利用できるバイト数やキャッシュされているバイト数などのメモリのデータを追跡します。アプリケーションでキャッシュされているバイトを操作する場合は、PerformanceCounter コンポーネントのインスタンスを作成し、そのインスタンスを Memory カテゴリに接続し、このカテゴリから適切なカウンタ (この例では Cached Bytes) を選択します。
システムで利用できるカウンタ カテゴリは多数ありますが、頻繁にやり取りするカテゴリは、Cache、Memory、Objects、PhysicalDisk、Process、Processor、Server、System、および Thread です。

PerformanceCounter および PerformanceCounterCategory がローカル コンピュータまたは別のコンピュータに存在するかどうかを判断するコード例を次に示します。この例では、これらのオブジェクトがローカル コンピュータに存在しない場合は必要に応じて作成します。Exists メソッドを使用して、PerformanceCounterCategory が存在するかどうかを判断します。PerformanceCounterCategory が存在せず、カウンタ名が指定されていない場合、またはコンピュータがリモート マシンである場合は終了します。
PerformanceCounter 名が指定されている場合、この例では CounterExists メソッドを使用して結果を表示します。PerformanceCounter が存在しない場合、ユーザーは、PerformanceCounterCategory を削除し、新しい PerformanceCounter で再作成できます。この処理が行われなかった場合は、Delete メソッドによってカテゴリが削除されます。
要求に応じて、この例では Create メソッドを使用して新しい PerformanceCounterCategory および PerformanceCounter を作成します。インスタンス名が指定されている場合は、InstanceExists メソッドを使用して結果を表示します。
Imports System Imports System.Diagnostics Imports Microsoft.VisualBasic Module PerfCounterCatCreateExistMod Sub Main(ByVal args() As String) Dim categoryName As String = "" Dim counterName As String = "" Dim instanceName As String = "" Dim machineName As String = "" Dim categoryHelp As String = "" Dim counterHelp As String = "" Dim objectExists As Boolean = False Dim pcc As PerformanceCounterCategory Dim createCategory As Boolean = False ' Copy the supplied arguments into the local variables. Try categoryName = args(0) counterName = args(1) instanceName = args(2) machineName = IIf(args(3) = ".", "", args(3)) categoryHelp = args(4) counterHelp = args(5) Catch ex As Exception ' Ignore the exception from non-supplied arguments. End Try ' Verify that the category name is not blank. If categoryName.Length = 0 Then Console.WriteLine("Category name cannot be blank.") Return End If ' Check whether the specified category exists. If machineName.Length = 0 Then objectExists = _ PerformanceCounterCategory.Exists(categoryName) Else ' Handle the exception that is thrown if the computer ' cannot be found. Try objectExists = PerformanceCounterCategory.Exists( _ categoryName, machineName) Catch ex As Exception Console.WriteLine("Error checking for existence of " & _ "category ""{0}"" on computer ""{1}"":" & vbCrLf & _ ex.Message, categoryName, machineName) Return End Try End If ' Tell the user whether the specified category exists. Console.WriteLine("Category ""{0}"" " & _ IIf(objectExists, "exists on ", "does not exist on ") & _ IIf(machineName.Length > 0, _ "computer ""{1}"".", "this computer."), _ categoryName, machineName) ' If no counter name is given, the program cannot continue. If counterName.Length = 0 Then Return End If ' A category can only be created on the local computer. If Not objectExists Then If machineName.Length > 0 Then Return Else createCategory = True End If Else ' Check whether the specified counter exists. If machineName.Length = 0 Then objectExists = PerformanceCounterCategory.CounterExists( _ counterName, categoryName) Else objectExists = PerformanceCounterCategory.CounterExists( _ counterName, categoryName, machineName) End If ' Tell the user whether the counter exists. Console.WriteLine("Counter ""{0}"" " & _ IIf(objectExists, "exists", "does not exist") & _ " in category ""{1}"" on " & _ IIf(machineName.Length > 0, _ "computer ""{2}"".", "this computer."), _ counterName, categoryName, machineName) ' If the counter does not exist, consider creating it. If Not objectExists Then ' If this is a remote computer, ' exit because the category cannot be created. If machineName.Length > 0 Then Return Else ' Ask whether the user wants to recreate the category. Console.Write("Do you want to delete and recreate " & _ "category ""{0}"" with your new counter? [Y/N]: ", _ categoryName) Dim userReply As String = Console.ReadLine() ' If yes, delete the category so it can be recreated later. If userReply.Trim.ToUpper.Chars(0) = "Y" Then PerformanceCounterCategory.Delete(categoryName) createCategory = True Else Return End If End If End If End If ' Create the category if it was deleted or it never existed. If createCategory Then pcc = PerformanceCounterCategory.Create( _ categoryName, categoryHelp, counterName, counterHelp) Console.WriteLine( _ "Category ""{0}"" with counter ""{1}"" created.", _ pcc.CategoryName, counterName) ElseIf instanceName.Length > 0 Then ' If an instance name was given, check whether it exists. If machineName.Length = 0 Then objectExists = PerformanceCounterCategory.InstanceExists( _ instanceName, categoryName) Else objectExists = PerformanceCounterCategory.InstanceExists( _ instanceName, categoryName, machineName) End If ' Tell the user whether the instance exists. Console.WriteLine("Instance ""{0}"" " & _ IIf(objectExists, "exists", "does not exist") & _ " in category ""{1}"" on " & _ IIf(machineName.Length > 0, _ "computer ""{2}"".", "this computer."), _ instanceName, categoryName, machineName) End If End Sub End Module

System.Diagnostics.PerformanceCounterCategory


Windows 98, Windows 2000 SP4, Windows Server 2003, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP SP2, Windows XP Starter Edition
開発プラットフォームの中には、.NET Framework によってサポートされていないバージョンがあります。サポートされているバージョンについては、「システム要件」を参照してください。


PerformanceCounterCategory メンバ
System.Diagnostics 名前空間
PerformanceCounter クラス
CounterCreationDataCollection クラス
CounterSample 構造体
PerformanceCounterCategory コンストラクタ ()
アセンブリ: System (system.dll 内)


この PerformanceCounterCategory インスタンスをサーバー上のパフォーマンス オブジェクトに関連付ける前に、CategoryName プロパティを設定する必要があります。設定しないと、例外がスローされます。

PerformanceCounterCategory 名およびコンピュータ名をコマンド ラインから受け取るコード例を次に示します。この例では、指定されたパラメータの数に適したコンストラクタ オーバーロードを使用して、PerformanceCounterCategory を作成し、プロパティを表示します。
Sub Main(ByVal args() As String) Dim categoryName As String = "" Dim machineName As String = "" Dim pcc As PerformanceCounterCategory ' Copy the supplied arguments into the local variables. Try categoryName = args(0) machineName = IIf(args(1) = ".", "", args(1)) Catch ex As Exception ' Ignore the exception from non-supplied arguments. End Try ' Create a PerformanceCounterCategory object using ' the appropriate constructor. If categoryName.Length = 0 Then pcc = New PerformanceCounterCategory ElseIf machineName.Length = 0 Then pcc = New PerformanceCounterCategory(categoryName) Else pcc = New PerformanceCounterCategory(categoryName, machineName) End If ' Display the properties of the PerformanceCounterCategory object. Try Console.WriteLine(" Category: {0}", pcc.CategoryName) Console.WriteLine(" Computer: {0}", pcc.MachineName) Console.WriteLine(" Help text: {0}", pcc.CategoryHelp) Catch ex As Exception Console.WriteLine("Error getting the properties of the " & _ "PerformanceCounterCategory object:") Console.WriteLine(ex.Message) End Try End Sub


Windows 98, Windows 2000 SP4, Windows Server 2003, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP SP2, Windows XP Starter Edition
開発プラットフォームの中には、.NET Framework によってサポートされていないバージョンがあります。サポートされているバージョンについては、「システム要件」を参照してください。


PerformanceCounterCategory クラス
PerformanceCounterCategory メンバ
System.Diagnostics 名前空間
CategoryName
MachineName
PerformanceCounter クラス
PerformanceCounterCategory コンストラクタ (String)
アセンブリ: System (system.dll 内)



PerformanceCounterCategory 名およびコンピュータ名をコマンド ラインから受け取るコード例を次に示します。この例では、指定されたパラメータの数に適したコンストラクタ オーバーロードを使用して、PerformanceCounterCategory を作成し、プロパティを表示します。
Sub Main(ByVal args() As String) Dim categoryName As String = "" Dim machineName As String = "" Dim pcc As PerformanceCounterCategory ' Copy the supplied arguments into the local variables. Try categoryName = args(0) machineName = IIf(args(1) = ".", "", args(1)) Catch ex As Exception ' Ignore the exception from non-supplied arguments. End Try ' Create a PerformanceCounterCategory object using ' the appropriate constructor. If categoryName.Length = 0 Then pcc = New PerformanceCounterCategory ElseIf machineName.Length = 0 Then pcc = New PerformanceCounterCategory(categoryName) Else pcc = New PerformanceCounterCategory(categoryName, machineName) End If ' Display the properties of the PerformanceCounterCategory object. Try Console.WriteLine(" Category: {0}", pcc.CategoryName) Console.WriteLine(" Computer: {0}", pcc.MachineName) Console.WriteLine(" Help text: {0}", pcc.CategoryHelp) Catch ex As Exception Console.WriteLine("Error getting the properties of the " & _ "PerformanceCounterCategory object:") Console.WriteLine(ex.Message) End Try End Sub


Windows 98, Windows 2000 SP4, Windows Server 2003, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP SP2, Windows XP Starter Edition
開発プラットフォームの中には、.NET Framework によってサポートされていないバージョンがあります。サポートされているバージョンについては、「システム要件」を参照してください。


PerformanceCounterCategory クラス
PerformanceCounterCategory メンバ
System.Diagnostics 名前空間
CategoryName
MachineName
PerformanceCounter クラス
PerformanceCounterCategory コンストラクタ (String, String)
アセンブリ: System (system.dll 内)

Dim categoryName As String Dim machineName As String Dim instance As New PerformanceCounterCategory(categoryName, machineName)


PerformanceCounterCategory 名およびコンピュータ名をコマンド ラインから受け取るコード例を次に示します。この例では、指定されたパラメータの数に適したコンストラクタ オーバーロードを使用して、PerformanceCounterCategory を作成し、プロパティを表示します。
Sub Main(ByVal args() As String) Dim categoryName As String = "" Dim machineName As String = "" Dim pcc As PerformanceCounterCategory ' Copy the supplied arguments into the local variables. Try categoryName = args(0) machineName = IIf(args(1) = ".", "", args(1)) Catch ex As Exception ' Ignore the exception from non-supplied arguments. End Try ' Create a PerformanceCounterCategory object using ' the appropriate constructor. If categoryName.Length = 0 Then pcc = New PerformanceCounterCategory ElseIf machineName.Length = 0 Then pcc = New PerformanceCounterCategory(categoryName) Else pcc = New PerformanceCounterCategory(categoryName, machineName) End If ' Display the properties of the PerformanceCounterCategory object. Try Console.WriteLine(" Category: {0}", pcc.CategoryName) Console.WriteLine(" Computer: {0}", pcc.MachineName) Console.WriteLine(" Help text: {0}", pcc.CategoryHelp) Catch ex As Exception Console.WriteLine("Error getting the properties of the " & _ "PerformanceCounterCategory object:") Console.WriteLine(ex.Message) End Try End Sub


Windows 98, Windows 2000 SP4, Windows Server 2003, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP SP2, Windows XP Starter Edition
開発プラットフォームの中には、.NET Framework によってサポートされていないバージョンがあります。サポートされているバージョンについては、「システム要件」を参照してください。


PerformanceCounterCategory クラス
PerformanceCounterCategory メンバ
System.Diagnostics 名前空間
CategoryName
MachineName
PerformanceCounter クラス
PerformanceCounterCategory コンストラクタ

名前 | 説明 |
---|---|
PerformanceCounterCategory () | PerformanceCounterCategory クラスの新しいインスタンスを初期化し、CategoryName プロパティを空のままにし、MachineName プロパティをローカル コンピュータに設定します。 |
PerformanceCounterCategory (String) | PerformanceCounterCategory クラスの新しいインスタンスを初期化し、CategoryName プロパティを指定した値に設定し、MachineName プロパティをローカル コンピュータに設定します。 |
PerformanceCounterCategory (String, String) | PerformanceCounterCategory クラスの新しいインスタンスを初期化し、CategoryName プロパティと MachineName プロパティを指定した値に設定します。 |

関連項目
PerformanceCounterCategory クラスPerformanceCounterCategory メンバ
System.Diagnostics 名前空間
CategoryName
MachineName
PerformanceCounter クラス
PerformanceCounterCategory プロパティ

名前 | 説明 | |
---|---|---|
![]() | CategoryHelp | カテゴリのヘルプ テキストを取得します。 |
![]() | CategoryName | このカテゴリを定義するパフォーマンス オブジェクト名を取得または設定します。 |
![]() | CategoryType | パフォーマンス カウンタ カテゴリ タイプを取得します。 |
![]() | MachineName | このカテゴリが存在するコンピュータの名前を取得または設定します。 |

関連項目
PerformanceCounterCategory クラスSystem.Diagnostics 名前空間
PerformanceCounter クラス
CounterCreationDataCollection クラス
CounterSample 構造体
PerformanceCounterCategory メソッド

名前 | 説明 | |
---|---|---|
![]() | CounterExists | オーバーロードされます。 指定したカウンタが特定のカテゴリに登録されているかどうかを判断します。 |
![]() | Create | オーバーロードされます。 カスタム パフォーマンス カウンタ カテゴリと 1 つ以上のカウンタをシステムに登録します。 |
![]() | Delete | カテゴリとそれに関連付けられているカウンタをローカル コンピュータから削除します。 |
![]() | Equals | オーバーロードされます。 2 つの Object インスタンスが等しいかどうかを判断します。 ( Object から継承されます。) |
![]() | Exists | オーバーロードされます。 カテゴリがシステムに登録されているかどうかを判断します。 |
![]() | GetCategories | オーバーロードされます。 コンピュータに登録されているパフォーマンス カウンタ カテゴリの一覧を取得します。 |
![]() | GetCounters | オーバーロードされます。 このパフォーマンス カウンタ カテゴリのカウンタの一覧を取得します。 |
![]() | GetHashCode | 特定の型のハッシュ関数として機能します。GetHashCode は、ハッシュ アルゴリズムや、ハッシュ テーブルのようなデータ構造での使用に適しています。 ( Object から継承されます。) |
![]() | GetInstanceNames | このカテゴリに関連付けられたパフォーマンス オブジェクト インスタンスの一覧を取得します。 |
![]() | GetType | 現在のインスタンスの Type を取得します。 ( Object から継承されます。) |
![]() | InstanceExists | オーバーロードされます。 カテゴリに指定したパフォーマンス オブジェクト インスタンスが含まれているかどうかを判断します。 |
![]() | ReadCategory | このパフォーマンス カウンタ カテゴリに関連付けられたすべてのカウンタとパフォーマンス オブジェクト インスタンスのデータを読み取ります。 |
![]() | ReferenceEquals | 指定した複数の Object インスタンスが同一かどうかを判断します。 ( Object から継承されます。) |
![]() | ToString | 現在の Object を表す String を返します。 ( Object から継承されます。) |

名前 | 説明 | |
---|---|---|
![]() | Finalize | Object がガベージ コレクションにより収集される前に、その Object がリソースを解放し、その他のクリーンアップ操作を実行できるようにします。 ( Object から継承されます。) |
![]() | MemberwiseClone | 現在の Object の簡易コピーを作成します。 ( Object から継承されます。) |

関連項目
PerformanceCounterCategory クラスSystem.Diagnostics 名前空間
PerformanceCounter クラス
CounterCreationDataCollection クラス
CounterSample 構造体
PerformanceCounterCategory メンバ
パフォーマンス カウンタのカテゴリを定義するパフォーマンス オブジェクトを表します。
PerformanceCounterCategory データ型で公開されるメンバを以下の表に示します。


名前 | 説明 | |
---|---|---|
![]() | CategoryHelp | カテゴリのヘルプ テキストを取得します。 |
![]() | CategoryName | このカテゴリを定義するパフォーマンス オブジェクト名を取得または設定します。 |
![]() | CategoryType | パフォーマンス カウンタ カテゴリ タイプを取得します。 |
![]() | MachineName | このカテゴリが存在するコンピュータの名前を取得または設定します。 |

名前 | 説明 | |
---|---|---|
![]() | CounterExists | オーバーロードされます。 指定したカウンタが特定のカテゴリに登録されているかどうかを判断します。 |
![]() | Create | オーバーロードされます。 カスタム パフォーマンス カウンタ カテゴリと 1 つ以上のカウンタをシステムに登録します。 |
![]() | Delete | カテゴリとそれに関連付けられているカウンタをローカル コンピュータから削除します。 |
![]() | Equals | オーバーロードされます。 2 つの Object インスタンスが等しいかどうかを判断します。 (Object から継承されます。) |
![]() | Exists | オーバーロードされます。 カテゴリがシステムに登録されているかどうかを判断します。 |
![]() | GetCategories | オーバーロードされます。 コンピュータに登録されているパフォーマンス カウンタ カテゴリの一覧を取得します。 |
![]() | GetCounters | オーバーロードされます。 このパフォーマンス カウンタ カテゴリのカウンタの一覧を取得します。 |
![]() | GetHashCode | 特定の型のハッシュ関数として機能します。GetHashCode は、ハッシュ アルゴリズムや、ハッシュ テーブルのようなデータ構造での使用に適しています。 (Object から継承されます。) |
![]() | GetInstanceNames | このカテゴリに関連付けられたパフォーマンス オブジェクト インスタンスの一覧を取得します。 |
![]() | GetType | 現在のインスタンスの Type を取得します。 (Object から継承されます。) |
![]() | InstanceExists | オーバーロードされます。 カテゴリに指定したパフォーマンス オブジェクト インスタンスが含まれているかどうかを判断します。 |
![]() | ReadCategory | このパフォーマンス カウンタ カテゴリに関連付けられたすべてのカウンタとパフォーマンス オブジェクト インスタンスのデータを読み取ります。 |
![]() | ReferenceEquals | 指定した複数の Object インスタンスが同一かどうかを判断します。 (Object から継承されます。) |
![]() | ToString | 現在の Object を表す String を返します。 (Object から継承されます。) |

名前 | 説明 | |
---|---|---|
![]() | Finalize | Object がガベージ コレクションにより収集される前に、その Object がリソースを解放し、その他のクリーンアップ操作を実行できるようにします。 (Object から継承されます。) |
![]() | MemberwiseClone | 現在の Object の簡易コピーを作成します。 (Object から継承されます。) |

関連項目
PerformanceCounterCategory クラスSystem.Diagnostics 名前空間
PerformanceCounter クラス
CounterCreationDataCollection クラス
CounterSample 構造体
- PerformanceCounterCategoryのページへのリンク