2010-02-03 15 views
13

Ho un processo di servizio e desidero utilizzare i contatori delle prestazioni per pubblicare il tempo medio necessario per completare le attività. Sto usando il contatore AverageTimer32 per fare questo.Calcolo delle medie con i contatori delle prestazioni

è quasi a lavorare come voglio, ma non del tutto: Quando ho incrementare il contatore, sarà brevemente urto fino al valore che mi aspetto (guardando in Performance Monitor), ma poi si scende a destra indietro fino a zero.

Quindi, il contatore è zero, eseguo un'attività, l'attività viene completata, il contatore salta brevemente (al valore corretto), ma poi torna quasi immediatamente a zero.

Sto utilizzando il contatore AverageTimer32 con un AverageBase come denominatore. Aumento MediaBase di 1 ogni volta che avvio un'attività, quindi incremento MediaTimer32 in base al numero di tick da completare ogni volta che termino l'attività. Qualcuno può darmi una spinta?

risposta

16

Si scopre che il motivo per cui non sono riuscito a fare ciò che volevo era che nessuno dei tipi di contatori delle prestazioni prevede il calcolo automatico di una media corrente. (i contatori "medi" calcolano una media basata su quel momento nel tempo, come "byte al secondo").

Volevo una media corrente. Quindi, ho usato il tipo di contatore delle prestazioni RawFraction.

C'era un problema con questo metodo: la formula divide il risultato per 100 per produrre una percentuale e volevo un numero non elaborato (operazioni medie completate al secondo).

Così, ho incrementato il denominatore della frazione di 100 per ogni 1 operazione (compensando il calcolo percentuale).

Il mio risultato: ora posso visualizzare quanto tempo impiega, in media, il mio servizio per completare un'attività. Se il mio servizio non è occupato, la media rimane costante in modo da poter vedere la tendenza a lungo termine delle prestazioni del mio servizio.

+0

Ho avuto lo stesso problema, ho provato a utilizzare AverageCount64, AverageTime32 ma invano. Grazie per aver risposto alla tua domanda e aver fornito la spiegazione. –

+0

+1 Questo ha funzionato anche per me. Eccellente! –

Problemi correlati