이 문서는 기계 번역을 이용하여 번역되었습니다. 문서를 영문으로 보려면 영문 확인란을 선택하세요. 마우스 포인터를 텍스트 위로 이동시켜 팝업 창에서 영문 텍스트를 표시할 수도 있습니다.
번역
영문

PerformanceCounterCategory 클래스

 

게시 날짜: 2016년 11월

성능 카운터의 범주를 정의 하는 성능 개체를 나타냅니다.

네임스페이스:   System.Diagnostics
어셈블리:  System(System.dll에 있음)

System.Object
  System.Diagnostics.PerformanceCounterCategory

[HostProtectionAttribute(SecurityAction.LinkDemand, Synchronization = true, 
	SharedState = true)]
public sealed class PerformanceCounterCategory

이름설명
System_CAPS_pubmethodPerformanceCounterCategory()

새 인스턴스를 초기화는 PerformanceCounterCategory 클래스, 리프는 CategoryName 비어 속성을 설정은 MachineName 로컬 컴퓨터에 대 한 속성입니다.

System_CAPS_pubmethodPerformanceCounterCategory(String)

새 인스턴스를 초기화는 PerformanceCounterCategory 클래스 집합에서 CategoryName 속성 집합과 지정 된 값을는 MachineName 로컬 컴퓨터에 대 한 속성.

System_CAPS_pubmethodPerformanceCounterCategory(String, String)

새 인스턴스를 초기화는 PerformanceCounterCategory 클래스 집합과 CategoryNameMachineName 속성을 지정 된 값입니다.

이름설명
System_CAPS_pubpropertyCategoryHelp

도움말 텍스트를 범주를 가져옵니다.

System_CAPS_pubpropertyCategoryName

이 범주를 정의 하는 성능 개체의 이름을 가져오거나 설정 합니다.

System_CAPS_pubpropertyCategoryType

성능 카운터 범주 형식을 가져옵니다.

System_CAPS_pubpropertyMachineName

이 범주 존재 하는 컴퓨터의 이름을 가져오거나 설정 합니다.

이름설명
System_CAPS_pubmethodCounterExists(String)

지정된 된 카운터로 표시 되는이 범주에 등록 되었는지를 확인은 CategoryNameMachineName 속성입니다.

System_CAPS_pubmethodSystem_CAPS_staticCounterExists(String, String)

지정된 된 카운터는 로컬 컴퓨터에 지정된 된 범주에 등록 되었는지 여부를 결정 합니다.

System_CAPS_pubmethodSystem_CAPS_staticCounterExists(String, String, String)

지정된 된 카운터는 원격 컴퓨터에 지정된 된 범주에 등록 되었는지 여부를 결정 합니다.

System_CAPS_pubmethodSystem_CAPS_staticCreate(String, String, CounterCreationDataCollection)

사용되지 않습니다. 로컬 컴퓨터에 지정 된 카운터를 포함 하는 사용자 지정 성능 카운터 범주를 등록 합니다.

System_CAPS_pubmethodSystem_CAPS_staticCreate(String, String, PerformanceCounterCategoryType, CounterCreationDataCollection)

로컬 컴퓨터에 지정 된 카운터를 포함 하는 사용자 지정 성능 카운터 범주를 등록 합니다.

System_CAPS_pubmethodSystem_CAPS_staticCreate(String, String, PerformanceCounterCategoryType, String, String)

형식의 단일 카운터를 포함 하는 사용자 지정 성능 카운터 범주를 등록 NumberOfItems32 로컬 컴퓨터에 있습니다.

System_CAPS_pubmethodSystem_CAPS_staticCreate(String, String, String, String)

사용되지 않습니다. 형식의 단일 카운터를 포함 하는 사용자 지정 성능 카운터 범주를 등록 NumberOfItems32 로컬 컴퓨터에 있습니다.

System_CAPS_pubmethodSystem_CAPS_staticDelete(String)

로컬 컴퓨터에서 범주 및 관련된 카운터를 제거합니다.

System_CAPS_pubmethodEquals(Object)

지정한 개체와 현재 개체가 같은지 여부를 확인합니다.(Object에서 상속됨)

System_CAPS_pubmethodSystem_CAPS_staticExists(String)

로컬 컴퓨터에 범주가 등록 되었는지 여부를 결정 합니다.

System_CAPS_pubmethodSystem_CAPS_staticExists(String, String)

지정된 된 컴퓨터에 범주가 등록 되었는지 여부를 결정 합니다.

System_CAPS_pubmethodSystem_CAPS_staticGetCategories()

로컬 컴퓨터에 등록 된 성능 카운터 범주의 목록을 검색 합니다.

System_CAPS_pubmethodSystem_CAPS_staticGetCategories(String)

지정된 된 컴퓨터에 등록 된 성능 카운터 범주의 목록을 검색 합니다.

System_CAPS_pubmethodGetCounters()

정확히 하나의 인스턴스를 포함 하는 성능 카운터 범주에서 카운터의 목록을 검색 합니다.

System_CAPS_pubmethodGetCounters(String)

하나 이상의 인스턴스를 포함 하는 성능 카운터 범주에서 카운터의 목록을 검색 합니다.

System_CAPS_pubmethodGetHashCode()

기본 해시 함수로 작동합니다.(Object에서 상속됨)

System_CAPS_pubmethodGetInstanceNames()

이 범주와 관련 된 성능 개체 인스턴스 목록을 검색 합니다.

System_CAPS_pubmethodGetType()

현재 인스턴스의 Type을 가져옵니다.(Object에서 상속됨)

System_CAPS_pubmethodInstanceExists(String)

지정한 성능 개체 인스턴스가이 식별 되는 범주에 있는지 여부를 결정 PerformanceCounterCategory 개체의 CategoryName 속성입니다.

System_CAPS_pubmethodSystem_CAPS_staticInstanceExists(String, String)

지정 된 성능 개체 인스턴스는 로컬 컴퓨터에 지정된 된 범주에 포함 되는지 여부를 결정 합니다.

System_CAPS_pubmethodSystem_CAPS_staticInstanceExists(String, String, String)

지정 된 성능 개체 인스턴스는 특정된 컴퓨터의 지정된 된 범주에 포함 되는지 여부를 결정 합니다.

System_CAPS_pubmethodReadCategory()

모든 카운터와 성능 개체 인스턴스 데이터를이 성능 카운터 범주와 관련 된 읽습니다.

System_CAPS_pubmethodToString()

현재 개체를 나타내는 문자열을 반환합니다.(Object에서 상속됨)

System_CAPS_important중요

만들기 또는 삭제 성능 카운터를 동기화 된 기본 코드의 명명된 된 뮤텍스를 사용 하 여 필요 합니다. 높은 권한이 필요한 응용 프로그램에서 명명 된 뮤텍스를 잠그는 경우 만들거나 성능 카운터를 삭제 하려고 하면 잠금이 해제 될 때까지 응답을 중지 하도록 응용 프로그램. 이 문제를 방지 하려면 부여 안 UnmanagedCode 신뢰할 수 없는 코드는 권한입니다. 또한 UnmanagedCode 권한에서 잠재적으로 다른 사용 권한을 무시 하 고 신뢰할 수 있는 코드에만 부여 해야 합니다.

PerformanceCounterCategory 인스턴스의 CategoryName 성능 뷰어 응용 프로그램의 카운터 추가 대화 상자는 성능 개체 필드에 속성이 표시 됩니다.

PerformanceCounterCategory 클래스는 컴퓨터에서 카운터 및 범주와의 상호 작용 하는 여러 가지 방법을 제공 합니다. Create 메서드를 사용 하면 사용자 지정 범주를 정의할 수 있습니다. Delete 메서드는 컴퓨터에서 범주를 제거 하는 방법을 제공 합니다. GetCategories 메서드를 사용 하면 범주의 목록을 볼 수 있지만 ReadCategory 단일 범주와 관련 된 모든 카운터 및 인스턴스 데이터를 검색 합니다.

성능 카운터는 응용 프로그램에 대 한 성능 데이터를 게시합니다. 범주 (예: 프로세서, 디스크 및 메모리) 물리적 구성 요소 및 시스템 개체 (예: 프로세스, 스레드)에 포함 됩니다. 동일한 성능 개체에 관련 된 시스템 카운터 들은 공통 된 포커스를 나타내는 범주로 그룹화 됩니다. 인스턴스를 만드는 경우는 PerformanceCounter 클래스를 먼저 표시 범주 구성 요소 상호 작용 하 고 해당 범주에서 카운터를 선택 합니다.

예를 들어, 하나의 Windows 카운터 범주는 메모리 범주입니다. 이 범주 내에서 시스템 카운터는 사용 가능한 바이트의 수 및 캐시 된 바이트 수와 같은 메모리 내 데이터를 추적 합니다. 인스턴스를 만들 것 응용 프로그램에 캐시 된 바이트를 사용 하려는 경우는 PerformanceCounter 구성 요소, 메모리 범주에 연결 하 고 해당 범주에서 해당 카운터에 (이 경우 캐시 된 바이트)을 선택 합니다.

시스템에서는 많은 카운터 범주를 추가로 사용할 수 있지만 범주 수는 아마도 상호 작용 하는 가장 자주은 캐시, 메모리, 개체, 실제 디스크, 프로세스, 프로세서, 서버, 시스템 및 스레드 범주입니다.

System_CAPS_important중요

RemoveInstance 에서 메서드는 PerformanceCounter 클래스는 카운터를 해제 하 고 다시 사용 옵션을 선택 하 여 해당 범주에 대해 하면 카운터의 인스턴스 다시 사용 됩니다. 다른 프로세스 또는 코드의 다른 부분을 카운터 인스턴스를 작성 하는 경우 경합 상태를 일으킬 수 있습니다.

System_CAPS_note참고

응용 프로그램을 설치 하는 동안, 응용 프로그램 실행 중이 아니라 새 성능 카운터 범주를 만들 수 것이 좋습니다. 이렇게 하면 운영 체제의 등록 된 성능 카운터 범주 목록을 새로 고칠 수 있습니다. 목록 새로 고치지 않은, 범주를 사용 하려는 시도가 실패 합니다.

System_CAPS_note참고

와 함께 설치 되는 성능 카운터 범주는 .NET Framework 2.0 자체 메모리가 있는 각 성능 카운터 범주와 함께 별도 공유 메모리를 사용 합니다. 레지스트리 키 HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\ FileMappingSize 라는 DWORD를 만들어 별도 공유 메모리의 크기를 지정할 수 있습니다< 범주 이름 >\Performance 합니다. FileMappingSize 값은 범주 공유 메모리 크기에 설정 됩니다. 기본 크기는 10 진수 131072입니다. FileMappingSize 값 없는 경우는 fileMappingSize 특성에 대 한 값은 performanceCounters 으로 인해 구성 파일을 처리에 대 한 추가 오버 헤드가 Machine.config 파일에 지정 된 요소가 사용 됩니다. 레지스트리에서 파일 매핑 크기를 설정 하 여 응용 프로그램 시작에 대 한 성능 향상을 실현할 수 있습니다. 파일 매핑 크기에 대 한 자세한 내용은 참조 <performanceCounters> 요소합니다.

다음 코드 예제에서는 확인 여부는 PerformanceCounter 및 해당 PerformanceCounterCategory 로컬 컴퓨터 또는 다른 컴퓨터에 존재 합니다. 이러한 개체는 로컬 컴퓨터에 존재 하지 않는 경우이 예제를 선택적으로 만듭니다. 사용 하 여는 Exists 확인할 수 있는 방법은 여부는 PerformanceCounterCategory 존재 합니다. 하는 경우는 PerformanceCounterCategory 존재 하지 않는 카운터 이름이 지정 되지 않은, 또는 컴퓨터가 원격 컴퓨터 인 경우에 예제에서는 종료 하 고 있습니다.

경우는 PerformanceCounter 이름이 제공 된,이 예제에서는 사용 된 CounterExists 메서드 사용자에 게 결과 표시 합니다. 하는 경우는 PerformanceCounter 존재 하지 않는 사용자 삭제 하 고 다시 만들는 PerformanceCounterCategoryPerformanceCounter합니다. 사용자가 그렇게 하는 경우 범주를 사용 하 여 삭제 됩니다는 Delete 메서드.

요청 된 경우이 예에서는 이제 만듭니다 새 PerformanceCounterCategoryPerformanceCounter 를 사용 하는 Create 메서드. 이 예제에 사용 하 여 인스턴스 이름을 지정 하는 경우는 InstanceExists 메서드 결과 표시 합니다.

using System;
using System.Diagnostics;
using Microsoft.VisualBasic;

class PerfCounterCatCreateExistMod
{

    public static void Main(string[] args)
    {
        string categoryName = "";
        string counterName = "";
        string instanceName = "";
        string machineName = "";
        string categoryHelp = "";
        string counterHelp = "";
        bool objectExists = false;
        PerformanceCounterCategory pcc;
        bool createCategory = false;

        // Copy the supplied arguments into the local variables.
        try
        {
            categoryName = args[0];
            counterName = args[1];
            instanceName = args[2];
            machineName = args[3]=="."? "": args[3];
            categoryHelp = args[4];
            counterHelp = args[5];
        }
        catch(Exception ex)
        {
            // Ignore the exception from non-supplied arguments.
        }

        // Verify that the category name is not blank.
        if (categoryName.Length==0)
        {
            Console.WriteLine("Category name cannot be blank.");
            return;
        }

        // Check whether the specified category exists.
        if (machineName.Length==0)
        {
            objectExists = PerformanceCounterCategory.Exists(categoryName);

        }
        else
        {
            // Handle the exception that is thrown if the computer 
            // cannot be found.
            try
            {
                objectExists = PerformanceCounterCategory.Exists(categoryName, machineName);
            }
            catch(Exception ex)
            {
                Console.WriteLine("Error checking for existence of " +
                    "category \"{0}\" on computer \"{1}\":"+"\n" +ex.Message, categoryName, machineName);
                return;
            }
        }

        // Tell the user whether the specified category exists.
        Console.WriteLine("Category \"{0}\" "+ (objectExists? "exists on ": "does not exist on ")+
            (machineName.Length>0? "computer \"{1}\".": "this computer."), categoryName, machineName);

        // If no counter name is given, the program cannot continue.
        if (counterName.Length==0)
        {
            return;
        }

        // A category can only be created on the local computer.
        if (!objectExists)
        {
            if (machineName.Length>0)
            {
                return;
            }
            else
            {
                createCategory = true;
            }
        }
        else
        {
            // Check whether the specified counter exists.
            if (machineName.Length==0)
            {
                objectExists = PerformanceCounterCategory.CounterExists(counterName, categoryName);
            }
            else
            {
                objectExists = PerformanceCounterCategory.CounterExists(counterName, categoryName, machineName);
            }

            // Tell the user whether the counter exists.
            Console.WriteLine("Counter \"{0}\" "+(objectExists? "exists": "does not exist")+
                " in category \"{1}\" on "+(machineName.Length>0? "computer \"{2}\".": "this computer."), 
                counterName, categoryName, machineName);

            // If the counter does not exist, consider creating it.
            if (!objectExists)

                // If this is a remote computer, 
                // exit because the category cannot be created.
            {
                if (machineName.Length>0)
                {
                    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);
                    string userReply = Console.ReadLine();

                    // If yes, delete the category so it can be recreated later.
                    if (userReply.Trim().ToUpper()=="Y")
                    {
                        PerformanceCounterCategory.Delete(categoryName);
                        createCategory = true;
                    }
                    else
                    {
                        return;
                    }
                }
            }
        }

        // Create the category if it was deleted or it never existed.
        if (createCategory)
        {
            pcc = PerformanceCounterCategory.Create(categoryName, categoryHelp, counterName, counterHelp);

            Console.WriteLine("Category \"{0}\" with counter \"{1}\" created.", pcc.CategoryName, counterName);

        }
        else if(instanceName.Length>0)
        {
            if (machineName.Length==0)
            {
                objectExists = PerformanceCounterCategory.InstanceExists(instanceName, categoryName);
            }
            else
            {
                objectExists = PerformanceCounterCategory.InstanceExists(instanceName, categoryName, machineName);
            }

            // Tell the user whether the instance exists.
            Console.WriteLine("Instance \"{0}\" "+(objectExists? "exists": "does not exist")+
                " in category \"{1}\" on " + (machineName.Length>0? "computer \"{2}\".": "this computer."), 
                instanceName, categoryName, machineName);
        }
    }
}

.NET Framework
1.1 이후 사용 가능

이 형식의 모든 public static(Visual Basic의 공유 Visual Basic의 경우) 멤버는 스레드로부터 안전합니다. 인스턴스 멤버는 스레드로부터의 안전이 보장되지 않습니다.

맨 위로 이동
표시: