Compartir a través de


Tutorial: Cambiar y recuperar valores de los contadores de rendimiento

Actualización: noviembre 2007

Los procedimientos de este tutorial muestran cómo trabajar con los valores de un contador de rendimiento mediante los métodos de la clase PerformanceCounter. Un contador de rendimiento es el medio que utiliza Windows para recopilar datos de rendimiento de los diversos recursos del sistema. Windows contiene un conjunto de contadores predefinidos, organizados en categorías, con los que se puede interactuar. Los valores que se recuperan de un contador pueden ser valores sin formato o valores calculados que cambian con el tiempo. Existen varias formas de aumentar y disminuir el valor actual de un contador.

En este tutorial, podrá:

  • Crear y configurar un componente PerformanceCounter para interactuar con un contador suministrado por el sistema.

  • Crear una aplicación para Windows que contiene elementos de interfaz de usuario que permiten recuperar y mostrar valores de un contador.

  • Escribir código que use la propiedad RawValue para definir y recuperar el valor sin formato del contador.

  • Escribir código que use los métodos Increment, IncrementBy y M:System.Diagnostics.PerformanceCounter.Decrement para modificar el valor del contador y recuperar su nuevo valor.

Nota:

Es posible que su equipo muestre nombres o ubicaciones diferentes para algunos de los elementos de la interfaz de usuario de Visual Studio incluidos en las instrucciones siguientes. La edición de Visual Studio que se tenga y la configuración que se utilice determinan estos elementos. Para obtener más información, vea Valores de configuración de Visual Studio.

Para crear una aplicación para Windows

  1. En el menú Archivo, elija Nuevo y, a continuación, haga clic en Proyecto.

  2. En el cuadro de diálogo Nuevo proyecto, cree una Aplicación para Windows de Visual Basic o Visual C#. Asigne al proyecto el nombre PerformanceCounterExample.

  3. En la ficha Windows Forms del Cuadro de herramientas, agregue los siguientes controles a la aplicación:

    • Dos etiquetas

    • Un cuadro de texto

    • Cinco botones

  4. Defina las siguientes propiedades en los controles:

    Control

    Propiedad

    Valor

    Label1

    Name

    lblCounterValue

     

    Text

    (En blanco)

    Label2

    Name

    lblSystemCounterValue

     

    Text

    (En blanco)

    Textbox1

    Name

    txtValue

     

    Text

    (En blanco)

    Button1

    Name

    btnSetRawValue

     

    Text

    Definir el valor sin formato del contador personalizado

    Button2

    Name

    btnGetNextValue

     

    Text

    Obtener nuevo valor del contador del sistema

    Button3

    Name

    btnIncrement

     

    Text

    Incrementar el contador personalizado en 1

    Button4

    Name

    btnDecrement

     

    Text

    Disminuir el contador personalizado en 1

    Button5

    Name

    btnIncrementBy

     

    Text

    Incrementar el contador personalizado en un valor

  5. Organice los controles como desee.

  6. Guarde su trabajo.

Para crear y configurar el componente PerformanceCounter

  1. Abra el Explorador de servidores y obtenga acceso al nodo Servidores. Para obtener más información, vea Cómo: Tener acceso e inicializar el Explorador de servidores o el Explorador de bases de datos.

  2. Localice la lista correspondiente a su equipo en el nodo Servidores y expándalo. Podrá ver entradas para contadores de rendimiento, colas de mensajes, registros de eventos y servicios.

  3. Expanda el nodo Contadores de rendimiento y busque el nodo Procesador.

  4. Busque el nodo % de tiempo de procesador y expándalo.

  5. Arrastre el contador _Total hasta el formulario. Se agregará al proyecto un componente PerformanceCounter configurado para el contador _Total. El componente se denomina PerformanceCounter1 en Visual Basic y performanceCounter1 en Visual C#.

Para recuperar el valor sin formato del contador del sistema

  • En el diseñador, haga doble clic en el botón Obtener nuevo valor del contador del sistema para crear el controlador de eventos Click. Este método devuelve el valor calculado del contador, no el valor sin formato. Agregue este código para recuperar y mostrar el siguiente valor del contador que la instancia de PerformanceCounter está supervisando:

    Private Sub btnGetNextValue_Click(ByVal sender As System.Object, _
    ByVal e As System.EventArgs) Handles btnGetNextValue.Click
       lblSystemCounterValue.Text = _
          "The current value of the system counter is: " _
          & PerformanceCounter1.NextValue().ToString()
    End Sub
    
    private void btnGetNextValue_Click(object sender, System.EventArgs e)
    {
       lblSystemCounterValue.Text = 
          "The current value of the system counter is: " 
          + performanceCounter1.NextValue().ToString();
    }
    

Durante el resto de los procedimientos, trabajará con una categoría y un contador personalizados.

Para crear una categoría y un contador personalizados

  1. En el menú Ver, haga clic en Diseñador para tener acceso al diseñador de Form1.

  2. En el diseñador, abra el Explorador de servidores y obtenga acceso al nodo Servidores. Para obtener más información, vea Cómo: Tener acceso e inicializar el Explorador de servidores o el Explorador de bases de datos.

  3. Localice la lista correspondiente a su equipo en el nodo Servidores y expándalo.

  4. Haga clic con el botón secundario en el nodo Contadores de rendimiento y, a continuación, haga clic en Crear categoría nueva.

    Aparecerá el cuadro de diálogo Generador de contadores de rendimiento.

  5. Especifique MyNewCategory como Nombre de categoría.

  6. Haga clic en Nuevo para agregar un nuevo contador y asígnele el nombre MyNewCounter. Haga clic en Aceptar para crear la nueva categoría y el contador.

    Nota:

    En este paso, necesitará permiso para escribir en el Registro. Si no puede crear el contador, póngase en contacto con el administrador del sistema.

  7. En el Explorador de servidores, seleccione el nuevo contador y arrástrelo hasta el formulario. Se agregará al proyecto un nuevo componente PerformanceCounter configurado para el nuevo contador, MyNewCounter.

    Nota:

    Estos pasos crean el contador en el equipo. Si desea implementar la aplicación, deberá crear el contador en el equipo de destino. Para ello, debe agregar un instalador al proyecto. Seleccione el objeto PerformanceCounter y haga clic en Agregar instalador en la ventana Propiedades. (Si no tiene disponible este comando, haga clic con el botón secundario en la ventana Propiedades y, a continuación, haga clic en Comandos.) Para obtener más información, vea Introducción a los componentes de instalación.

Para definir el valor sin formato del contador personalizado

  1. En el diseñador, seleccione el control PerformanceCounter2 en Visual Basic o performanceCounter2 en Visual C#.

  2. Establezca la propiedad ReadOnly en false.

  3. Haga doble clic en el botón btnSetRawValue para crear el controlador de eventos Click en el Editor de código.

  4. Agregue el siguiente código para establecer el valor sin formato del contador que creó y mostrar el valor del contador en el primero de los controles de etiqueta.

    Private Sub btnSetRawValue_Click(ByVal sender As System.Object, _
    ByVal e As System.EventArgs) Handles btnSetRawValue.Click
       PerformanceCounter2.RawValue = CLng(txtValue.Text)
       lblCounterValue.Text = PerformanceCounter2.NextValue().ToString()
    End Sub
    
    private void btnSetRawValue_Click(object sender, System.EventArgs e)
    {
       performanceCounter2.RawValue = long.Parse(txtValue.Text);
       lblCounterValue.Text = performanceCounter2.NextValue().ToString();
    

    }

Para incrementar en uno el valor del contador personalizado y mostrarlo

  1. En el diseñador, haga doble clic en el botón Aumentar el contador personalizado por 1 para crear el controlador de eventos Click en el Editor de código.

  2. Agregue el siguiente código para sumar uno al contador personalizado y mostrar el valor del contador en el primero de los controles de etiqueta.

    Private Sub btnIncrement_Click(ByVal sender As System.Object, _
    ByVal e As System.EventArgs) Handles btnIncrement.Click
       PerformanceCounter2.Increment()
       lblCounterValue.Text = PerformanceCounter2.NextValue().ToString()
    End Sub
    
    private void btnIncrement_Click(object sender, System.EventArgs e)
    {
       performanceCounter2.Increment();
       lblCounterValue.Text = performanceCounter2.NextValue().ToString();
    

    }

Para disminuir en uno el valor del contador personalizado y mostrarlo

  1. En el diseñador, haga doble clic en el botón Disminuir contador personalizado en 1 para crear el controlador de eventos Click en el Editor de código.

  2. Agregue el siguiente código para restar uno al valor del contador y mostrar el valor del contador en el primero de los controles de etiqueta.

    Private Sub btnDecrement_Click(ByVal sender As System.Object, _
    ByVal e As System.EventArgs) Handles btnDecrement.Click
       PerformanceCounter2.Decrement()
       lblCounterValue.Text = PerformanceCounter2.NextValue().ToString()
    End Sub
    
    private void btnDecrement_Click(object sender, System.EventArgs e)
    {
       performanceCounter2.Decrement();
       lblCounterValue.Text = performanceCounter2.NextValue().ToString();
    

    }

Para incrementar el contador personalizado en un valor definido por el usuario

  1. En el diseñador, haga doble clic en el botón Aumentar el contador personalizado por un valor para crear el controlador de eventos Click en el Editor de código.

  2. Agregue el siguiente código para sumar al valor del contador el valor especificado en el cuadro de texto y mostrar el valor del contador en el primero de los controles de etiqueta.

    Private Sub btnIncrementBy_Click(ByVal sender As System.Object, _
    ByVal e As System.EventArgs) Handles btnIncrementBy.Click
       PerformanceCounter2.IncrementBy(CLng(txtValue.Text))
       lblCounterValue.Text = PerformanceCounter2.NextValue().ToString()
    End Sub
    
    private void btnIncrementBy_Click(object sender, System.EventArgs e)
    {
       performanceCounter2.IncrementBy(long.Parse(txtValue.Text));
       lblCounterValue.Text = performanceCounter2.NextValue().ToString();
    }
    

Para probar la aplicación

  1. Guarde los archivos.

  2. Presione F5 para compilar e iniciar la aplicación.

  3. Haga clic en el botón Obtener nuevo valor del contador del sistema para recuperar el valor actual del contador de la categoría Procesador. Puesto que va a recuperar el valor mediante el método NextValue(), la primera llamada devolverá 0.

    Podrá ver el valor actual mostrado en la etiqueta.

  4. Escriba 25 en el cuadro de texto y haga clic en Definir el valor sin formato del contador personalizado.

    El campo de etiqueta debería actualizarse para indicar que el valor sin formato es ahora de 25.

  5. Haga clic en el botón Aumentar contador personalizado en 1.

    El valor de la etiqueta debería incrementarse en 1.

  6. Haga clic en el botón Disminuir contador personalizado en 1.

    El valor de la etiqueta debería disminuir en 1.

  7. Escriba 25 en el cuadro de texto y haga clic en Incrementar el contador personalizado en un valor.

    El valor de la etiqueta debería incrementarse en 25.

    También puede ver el contador de rendimiento en la herramienta Rendimiento de Windows.

Para ver el contador de rendimiento en la herramienta Rendimiento de Windows

  1. Abra la herramienta Rendimiento que forma parte de la Consola de administración de Microsoft. Consulte la Ayuda del sistema operativo y vea los pasos para abrir la herramienta Rendimiento.

  2. Haga clic con el botón secundario en la lista de contadores situada debajo del gráfico de rendimiento y, a continuación, haga clic en Agregar contadores.

  3. Seleccione MyNewCategory en la lista Objeto de rendimiento y MyNewCounter en la lista de contadores. Haga clic en Agregar para finalizar.

  4. Haga clic en Ver informe, en la barra de herramientas, para mostrar el valor del contador.

Vea también

Conceptos

Introducción a la supervisión de umbrales de rendimiento

Otros recursos

Supervisar umbrales de rendimiento

Tutoriales sobre los contadores de rendimiento