desarrolloMobile.NET Noticias

martes, noviembre 02, 2004

Utilizar PerformanceCounter desde Visual C#.

Veamos como podemos utilizar el PerformanceCounter del sistema operativo para nuestra propia aplicación aplicando nuestros parámetros de medida y obteniendo la información en cualquier momento.
Código.
He aquí un ejemplo completo documentado de su utilización:

// comprovamos si existe el grupo de contador que
// deseamos crear, si no existe lo creamos

if(!PerformanceCounterCategory.Exists("ContadorEjemplo"))
{
//creamos una colección para objetos CounterCreationData
CounterCreationDataCollection contadores
= new CounterCreationDataCollection();

//Creamo un par de contadores de tipo Número de Items
CounterCreationData cVentas = new
CounterCreationData(
"Ventas","Contador de ejemplo de ventas realizadas.",
PerformanceCounterType.NumberOfItems32);

contadores.Add(cVentas);

CounterCreationData cCompras = new
CounterCreationData(
"Compras","Contador de ejemplo de compras realizadas.",
PerformanceCounterType.NumberOfItems32
);
contadores.Add(cCompras);

// ahora un contador de ratio por segundos
CounterCreationData cPeticiones = new
CounterCreationData(
"Peticiones / segundo","Contador de ejemplo de peticiones por segundo.",
PerformanceCounterType.RateOfCountsPerSecond32
);
contadores.Add(cCompras);

// añadimos ambos contadores a una categoria
PerformanceCounterCategory.Create
("ContadorEjemplo",
"Ventas y compras de ejemplo",
contadores);
}


Utilicémoslo.

// importante indicarle false en el parámetro ReadOnly si queremos
// modificar el valor

PerformanceCounter pc = new
PerformanceCounter
("ContadorEjemplo",
"Ventas",false);


// incrementamos ventas en 100 (miren el contador de rendimiento de WinNT)
pc.IncrementBy(100);



También tenemos la posibilidad de obtener el valor del contador.

// Si queremos obtener el valor de un det. contador lo haremos así
long valor = pc.RawValue;

1 comentario:

JavierCanillas dijo...

Cuando tuve que utilizar contadores para mis aplicaciones. Me encontré con que era bastante engorroso la instalación de los mismos y también su uso. Pueden echar un vistazo en una librería que armé en el siguiente link http://perfmoncounterhelper.codeplex.com. Envienmé información del uso.