PerformanceCounterCategoryとは? わかりやすく解説

PerformanceCounterCategory クラス

パフォーマンス カウンタのカテゴリを定義するパフォーマンス オブジェクトを表します。

名前空間: System.Diagnostics
アセンブリ: System (system.dll 内)
構文構文

Public NotInheritable Class
 PerformanceCounterCategory
Dim instance As PerformanceCounterCategory
public sealed class PerformanceCounterCategory
public ref class PerformanceCounterCategory
 sealed
public final class PerformanceCounterCategory
public final class PerformanceCounterCategory
解説解説
メモメモ

このクラスに適用される 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.Object
  System.Diagnostics.PerformanceCounterCategory
スレッド セーフスレッド セーフ
この型の public static (Visual Basic では Shared) メンバはすべて、スレッド セーフです。インスタンス メンバの場合は、スレッド セーフであるとは限りません。
プラットフォームプラットフォーム
バージョン情報バージョン情報
参照参照
関連項目
PerformanceCounterCategory メンバ
System.Diagnostics 名前空間
PerformanceCounter クラス
CounterCreationDataCollection クラス
CounterSample 構造体

PerformanceCounterCategory コンストラクタ ()

PerformanceCounterCategory クラスの新しいインスタンスを初期化し、CategoryName プロパティを空のままにし、MachineName プロパティをローカル コンピュータに設定します。

名前空間: System.Diagnostics
アセンブリ: System (system.dll 内)
構文構文

Dim instance As New PerformanceCounterCategory
public PerformanceCounterCategory ()
public:
PerformanceCounterCategory ()
public PerformanceCounterCategory ()
public function PerformanceCounterCategory
 ()
解説解説
使用例使用例

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
.NET Framework のセキュリティ.NET Framework のセキュリティ
プラットフォームプラットフォーム
バージョン情報バージョン情報
参照参照
関連項目
PerformanceCounterCategory クラス
PerformanceCounterCategory メンバ
System.Diagnostics 名前空間
CategoryName
MachineName
PerformanceCounter クラス

PerformanceCounterCategory コンストラクタ (String)

PerformanceCounterCategory クラスの新しいインスタンスを初期化し、CategoryName プロパティを指定した値に設定し、MachineName プロパティをローカル コンピュータに設定します。

名前空間: System.Diagnostics
アセンブリ: System (system.dll 内)
構文構文

Public Sub New ( _
    categoryName As String _
)
Dim categoryName As String

Dim instance As New PerformanceCounterCategory(categoryName)
public PerformanceCounterCategory (
    string categoryName
)
public:
PerformanceCounterCategory (
    String^ categoryName
)
public PerformanceCounterCategory (
    String categoryName
)
public function PerformanceCounterCategory
 (
    categoryName : String
)

パラメータ

categoryName

この PerformanceCounterCategory インスタンスを関連付けるパフォーマンス カウンタ カテゴリまたはパフォーマンス オブジェクトの名前。

例外例外
例外の種類条件

ArgumentException

categoryName が空の文字列 ("") です。

ArgumentNullException

categoryName が null 参照 (Visual Basic では Nothing) です。

使用例使用例

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
.NET Framework のセキュリティ.NET Framework のセキュリティ
プラットフォームプラットフォーム
バージョン情報バージョン情報
参照参照
関連項目
PerformanceCounterCategory クラス
PerformanceCounterCategory メンバ
System.Diagnostics 名前空間
CategoryName
MachineName
PerformanceCounter クラス

PerformanceCounterCategory コンストラクタ (String, String)

PerformanceCounterCategory クラスの新しいインスタンスを初期化し、CategoryName プロパティと MachineName プロパティを指定した値に設定します。

名前空間: System.Diagnostics
アセンブリ: System (system.dll 内)
構文構文

Public Sub New ( _
    categoryName As String, _
    machineName As String _
)
Dim categoryName As String
Dim machineName As String

Dim instance As New PerformanceCounterCategory(categoryName,
 machineName)
public PerformanceCounterCategory (
    string categoryName,
    string machineName
)
public:
PerformanceCounterCategory (
    String^ categoryName, 
    String^ machineName
)
public PerformanceCounterCategory (
    String categoryName, 
    String machineName
)
public function PerformanceCounterCategory
 (
    categoryName : String, 
    machineName : String
)

パラメータ

categoryName

この PerformanceCounterCategory インスタンスを関連付けるパフォーマンス カウンタ カテゴリまたはパフォーマンス オブジェクトの名前。

machineName

パフォーマンス カウンタ カテゴリと、それに関連付けられているカウンタが存在するコンピュータ。

例外例外
例外の種類条件

ArgumentException

categoryName が空の文字列 ("") です。

または

machineName 構文が無効です。

ArgumentNullException

categoryName が null 参照 (Visual Basic では Nothing) です。

使用例使用例

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
.NET Framework のセキュリティ.NET Framework のセキュリティ
プラットフォームプラットフォーム
バージョン情報バージョン情報
参照参照
関連項目
PerformanceCounterCategory クラス
PerformanceCounterCategory メンバ
System.Diagnostics 名前空間
CategoryName
MachineName
PerformanceCounter クラス

PerformanceCounterCategory コンストラクタ

PerformanceCounterCategory クラスの新しいインスタンスを初期化します。
オーバーロードの一覧オーバーロードの一覧

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

関連項目

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

PerformanceCounterCategory プロパティ


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 から継承されます。)
プロテクト メソッドプロテクト メソッド
参照参照

関連項目

PerformanceCounterCategory クラス
System.Diagnostics 名前空間
PerformanceCounter クラス
CounterCreationDataCollection クラス
CounterSample 構造体

PerformanceCounterCategory メンバ

パフォーマンス カウンタのカテゴリを定義するパフォーマンス オブジェクトを表します。

PerformanceCounterCategory データ型で公開されるメンバを以下の表に示します。


パブリック コンストラクタパブリック コンストラクタ
  名前 説明
パブリック メソッド PerformanceCounterCategory オーバーロードされます。 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 から継承されます。)
プロテクト メソッドプロテクト メソッド
参照参照

関連項目

PerformanceCounterCategory クラス
System.Diagnostics 名前空間
PerformanceCounter クラス
CounterCreationDataCollection クラス
CounterSample 構造体



英和和英テキスト翻訳

英語⇒日本語日本語⇒英語

辞書ショートカット

すべての辞書の索引

「PerformanceCounterCategory」の関連用語

PerformanceCounterCategoryのお隣キーワード
検索ランキング

   

英語⇒日本語
日本語⇒英語
   



PerformanceCounterCategoryのページの著作権

   
日本マイクロソフト株式会社日本マイクロソフト株式会社
© 2026 Microsoft.All rights reserved.

©2026 GRAS Group, Inc.RSS