방법: 성능 카운터 인스턴스 추가 및 제거

업데이트: 2007년 11월

카운터 및 범주와 마찬가지로 동적으로 인스턴스를 추가하거나 제거할 수 있습니다. 예를 들어 웹 기반 전자 상거래 응용 프로그램에서 각 사용자에 대한 인스턴스를 추가하여 사용자의 동작에 대한 정보를 추적한 다음 사용자의 세션이 종료될 때 인스턴스를 제거합니다.

카운터의 원시 값을 설정하여 인스턴스를 추가합니다. 카운터에 인스턴스가 없으면 처음 RawValue 속성을 설정할 때 인스턴스가 만들어지고, 다른 인스턴스가 지정되어 있지 않은 경우 원시 값의 모든 후속 동작이 이 인스턴스에 영향을 주는 것으로 가정합니다. 새 인스턴스의 이름을 지정한 후 값을 설정하면 추가 인스턴스를 만들 수 있습니다.

참고:

새 인스턴스의 이름을 지정할 때가 아니라 값을 설정할 때 인스턴스가 만들어집니다.

카운터는 범주를 만드는 과정에서 추가되는 경우를 제외하고는 기존의 범주에 추가할 수 없지만, 인스턴스는 언제든지 사용자 정의 범주에 추가하거나 범주에서 제거할 수 있습니다. InstanceName 속성을 사용하여 하나의 인스턴스에서 또 다른 인스턴스로 이동할 수 있습니다.

RemoveInstance 메서드를 사용하여 메모리에서 사용자 지정 성능 카운터의 인스턴스를 제거할 수 있습니다. 예를 들어, OrderInProgress라는 범주를 사용하고 각 사용자의 현재 쇼핑 목록에 대한 인스턴스를 유지하는 웹 기반 전자 상거래 응용 프로그램이 있다고 가정합니다. 목록에 처음으로 항목을 추가하면 응용 프로그램에서 해당 사용자의 새 인스턴스를 만듭니다. 주문을 마치면 응용 프로그램에서 이 인스턴스를 삭제합니다. 주문하는 동안 NumberofItemsinCart, TimeSinceCreation 및 NumberofItemsAddedPerSecond와 같은 카운터를 사용하여 인스턴스를 업데이트합니다.

Windows에 기본적으로 사용되는 성능 카운터에서는 인스턴스를 제거할 수 없습니다. PerformanceCounter 구성 요소에서 잘못된 인스턴스를 참조하는 경우 이 메서드는 예외를 throw합니다.

참고:

Microsoft Windows NT 버전 4.0에서는 PerformanceCounter 클래스가 완전히 지원되지 않습니다. 시스템 카운터를 읽을 수는 있지만 사용자 지정 카운터를 만들거나 삭제하거나 사용자 지정 카운터에 쓸 수는 없습니다.

성능 카운터 인스턴스를 추가하려면

  1. 정상적으로 범주와 카운터를 만듭니다. 자세한 내용은 방법: 성능 카운터 범주 만들기를 참조하십시오.

  2. InstanceName 속성을 인스턴스의 고유 이름으로 설정한 다음 인스턴스의 RawValue 속성을 설정합니다.

    다음 코드에서는 기존 성능 카운터 범주의 여러 인스턴스를 만드는 방법을 보여 줍니다.

    ' Assumes the category and counter have already been created.
    Dim myCounter As New System.Diagnostics.PerformanceCounter( _
       "cat", "counter", "instance1", False)
    ' Set the raw value to automatically create instance1.
    myCounter.RawValue = 100
    ' State that you will now be working with a different instance.
    myCounter.InstanceName = "instance2"
    ' Setting the value actually creates instance2.
    myCounter.RawValue = 200
    
         // Assumes category and counter have been created.
            System.Diagnostics.PerformanceCounter myCounter =
               new System.Diagnostics.PerformanceCounter(
               "cat", "counter", "instance1", false);
            // Set the raw value to automatically create instance1.
            myCounter.RawValue = 100;
            // State that you will now be working with a different instance.
            myCounter.InstanceName = "instance2";
            // Setting the value actually creates instance2.
            myCounter.RawValue = 200;
    
    

성능 카운터 인스턴스를 제거하려면

  1. 인스턴스를 제거할 카운터에 연결된 PerformanceCounter 구성 요소의 인스턴스를 만듭니다. 자세한 내용은 방법: PerformanceCounter 구성 요소 인스턴스 만들기를 참조하십시오.

  2. InstanceName 속성을 삭제할 인스턴스로 설정합니다.

  3. 구성 요소에서 RemoveInstance 메서드를 호출합니다.

    다음 예제에서는 카운터에서 Reference라는 인스턴스를 제거하는 방법을 보여 줍니다.

    ' Assumes that you have configured PerformanceCounter1 to
    ' interact with the appropriate counter.
    PerformanceCounter1.InstanceName = "Reference"
    PerformanceCounter1.RemoveInstance()
    
         // Assumes that you have configured PerformanceCounter1 to
            // interact with the appropriate counter.
            PerformanceCounter1.InstanceName = "Reference";
            PerformanceCounter1.RemoveInstance();
    

참고 항목

작업

방법: PerformanceCounter 구성 요소 인스턴스 만들기

개념

범주 및 카운터 관리