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

Weblio 辞書 > コンピュータ > .NET Framework クラス ライブラリ リファレンス > 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) を選択します

システム利用できるカウンタ カテゴリ多数ありますが、頻繁にやり取りするカテゴリは、CacheMemoryObjects、PhysicalDisk、ProcessProcessorServerSystem、および 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 構造体



英和和英テキスト翻訳>> Weblio翻訳
英語⇒日本語日本語⇒英語
  

辞書ショートカット

すべての辞書の索引

「PerformanceCounterCategory クラス」の関連用語

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

   

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



PerformanceCounterCategory クラスのページの著作権
Weblio 辞書 情報提供元は 参加元一覧 にて確認できます。

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

©2025 GRAS Group, Inc.RSS