net c# .net performance performancecounter

net - timer en c#



¿Cómo se asocian los temporizadores de contador de rendimiento a su base? (1)

Posición. Los contadores que requieren una base deben ser seguidos inmediatamente por la base en la lista de definiciones. Entonces, su código es correcto, tiene dos AverageTimer32, cada uno seguido por AverageBase.

Como nota al margen, cuando te aburras de escribir el mismo código una y otra vez, deberías considerar usar XSLT para generar el código de Contadores de rendimiento .

Estoy agregando algunos contadores de rendimiento a mi proyecto c # y estoy creando una nueva PerformanceCounterCategory. En esta categoría, me gustaría tener varios contadores / temporizadores que rastreen diferentes cosas. Tengo la necesidad de usar varios temporizadores promedio y estoy tratando de entender cómo el contador AverageBase se asocia con el contador AverageTimer32 correcto cuando hay más de uno en CoutnerCreationDataCollection.

Un par de preguntas:
1. Primero, ¿es esta una forma correcta de hacerlo? Las muestras que he encontrado tienen solo un temporizador promedio.
2. Y si la respuesta a la primera pregunta es sí, ¿tengo razón al pensar que el primer contador de AverageBase se agregó a la colección después del AverageTimer32? Encontré una referencia en un artículo para ellos que necesitan ser agregados en orden.

Aquí hay un ejemplo de lo que estoy tratando de hacer:

var dataColl = new CounterCreationDataCollection { new CounterCreationData { CounterType = PerformanceCounterType.AverageTimer32, CounterName = "AverageTime1", CounterHelp = "AverageTime1_Help" }, new CounterCreationData // Does this get linked to AverageTime1 simply // because it is being added after it? { CounterType = PerformanceCounterType.AverageBase, CounterName = "AverageTime1Base" }, new CounterCreationData { CounterType = PerformanceCounterType.AverageTimer32, CounterName = "AverageTime2", CounterHelp = "AverageTime2_Help" }, new CounterCreationData { CounterType = PerformanceCounterType.AverageBase, CounterName = "AverageTime2_Base" }, } PerformanceCounterCategory.Create( "MyCategoryName" , "My Category Help" , PerformanceCounterCategoryType.SingleInstance , dataColl);