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
En el menú Archivo, elija Nuevo y, a continuación, haga clic en Proyecto.
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.
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
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
Organice los controles como desee.
Guarde su trabajo.
Para crear y configurar el componente PerformanceCounter
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.
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.
Expanda el nodo Contadores de rendimiento y busque el nodo Procesador.
Busque el nodo % de tiempo de procesador y expándalo.
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
En el menú Ver, haga clic en Diseñador para tener acceso al diseñador de Form1.
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.
Localice la lista correspondiente a su equipo en el nodo Servidores y expándalo.
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.
Especifique MyNewCategory como Nombre de categoría.
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.
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
En el diseñador, seleccione el control PerformanceCounter2 en Visual Basic o performanceCounter2 en Visual C#.
Establezca la propiedad ReadOnly en false.
Haga doble clic en el botón btnSetRawValue para crear el controlador de eventos Click en el Editor de código.
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
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.
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
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.
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
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.
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
Guarde los archivos.
Presione F5 para compilar e iniciar la aplicación.
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.
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.
Haga clic en el botón Aumentar contador personalizado en 1.
El valor de la etiqueta debería incrementarse en 1.
Haga clic en el botón Disminuir contador personalizado en 1.
El valor de la etiqueta debería disminuir en 1.
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
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.
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.
Seleccione MyNewCategory en la lista Objeto de rendimiento y MyNewCounter en la lista de contadores. Haga clic en Agregar para finalizar.
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