Compartir a través de


Cómo: Recuperar muestras del contador de rendimiento

Actualización: noviembre 2007

La clase CounterSample se utiliza para crear muestras y realizar cálculos en su contenido. Una clase de muestra realiza un "muestreo" de un contador de rendimiento a partir de los criterios que defina. Estos criterios incluyen los valores de uno o varios contadores y la frecuencia con que deben suministrarse dichos valores. Asimismo, la clase registra el momento en que se tomaron dichas muestras. Puede recopilar todos estos datos en una clase de una sola instancia y, después, utilizar el método Calculate para realizar un cálculo. También puede utilizar el método Calculate para efectuar un cálculo que compare los valores de dos muestras diferentes.

El cálculo realizado depende del tipo de contador; algunos tipos de contadores tienen asociados cálculos específicos. Por ejemplo, los contadores de tipo ElapsedTime comparan la marca de tiempo en dos muestras diferentes y determinan el tiempo transcurrido entre ellas. Muchos contadores realizan un cálculo del promedio basado en los datos recuperados.

Éstos son los pasos que debe completar para definir una muestra:

  • Cree una o varias instancias de la clase CounterSample.

  • Recupere una muestra actual de cada instancia.

  • Llame al método Calculate pasando cada una de las muestras que desee incluir en el cálculo como un parámetro.

Para recuperar muestras de contadores de rendimiento y realizar un cálculo

  1. Cree una instancia de PerformanceCounter y configúrela de modo que interactúe con la categoría y el contador deseados. Para obtener más información, vea Cómo: Crear instancias de componentes PerformanceCounter o Cómo: Configurar instancias de componentes PerformanceCounter.

  2. Cree una instancia de la clase CounterSample que contenga los resultados del muestreo.

  3. Llame al método NextSample de la instancia del componente PerformanceCounter para recuperar el valor calculado y asigne el resultado a la clase CounterSample.

    Sugerencia:

    Deberá recuperar dos muestras para poder realizar el cálculo.

  4. Cree una variable que contenga los resultados del cálculo y atribúyale un tipo de datos de Single.

  5. En cada una de las dos muestras que necesita para realizar el cálculo, asigne un valor devuelto de NextSample a una variable de tipo CounterSample.

  6. Llame al método Calculate de la clase CounterSample y realice una de estas dos operaciones:

    • Si recuperó dos muestras, transfiéralas (almacenadas como objetos CounterSample) como parámetros al método Calculate.

    • Si sólo recuperó una muestra, transfiera la primera de ellas al método Calculate y, a continuación, utilice el segundo parámetro para recuperar otra muestra.

  7. Establezca un resultado del cálculo igual a la variable creada para que contenga el resultado.

    Nota:

    Las dos muestras deben pertenecer a contadores del mismo tipo o de lo contrario el método producirá una excepción. El tipo de contador determina la clase de cálculo realizado. Para obtener más información, vea Tipos de contadores de rendimiento.

    En el ejemplo de código siguiente se enseña cómo recuperar dos muestras y compararlas mediante el método Calculate:

    ' Dim variables of types CounterSample for each sample and a 
    ' variable of type single for the results.
    Dim sample1 As CounterSample
    Dim sample2 As CounterSample
    Dim result As Single
    ' Retrieve a sample.
    sample1 = PerformanceCounter1.NextSample()
    ' Wait some interval of time here and retrieve
    ' a second sample.
    System.Threading.Thread.Sleep(1000)
    sample2 = PerformanceCounter1.NextSample()
    ' Pass both samples to the Calculate method.
    result = CounterSample.Calculate(sample1, sample2)
    
         System.Diagnostics.CounterSample sample1;
            System.Diagnostics.CounterSample sample2;
            float result;
            // Retrieve a sample.
            sample1 = PerformanceCounter1.NextSample();
            // Wait some interval of time here and retrieve
            // a second sample.
            System.Threading.Thread.Sleep(1000);
            sample2 = PerformanceCounter1.NextSample();
            // Pass both samples to the Calculate method.
            result = System.Diagnostics.CounterSample.Calculate(sample1, sample2);
    

    Si lo desea, puede llamar también al método NextSample para proporcionar los valores de la segunda muestra. En el ejemplo siguiente se muestra el uso de este método:

    Dim sample1 As CounterSample
    Dim result As Single
    ' Retrieve a single sample.
    sample1 = PerformanceCounter1.NextSample()
    ' Pass the retrieved sample to the calculate method
    ' and retrieve another sample in the second parameter.
    result = CounterSample.Calculate(sample1, PerformanceCounter1.NextSample())
    
         System.Diagnostics.CounterSample sample1;
            float result;
            // Retrieve a single sample.
            sample1 = PerformanceCounter1.NextSample();
            // Pass the retrieved sample to the calculate method
            // and retrieve another sample in the second parameter.
            result = System.Diagnostics.CounterSample.Calculate(sample1, PerformanceCounter1.NextSample());
    

Vea también

Tareas

Cómo: Recuperar valores sin formato del contador de rendimiento

Cómo: Recuperar valores calculados del contador de rendimiento

Cómo: Recuperar listas de contadores y categorías

Conceptos

Recuperación del valor de los contadores de rendimiento