Average számlálók visszatérnek 0-ban

+1 vote
asked Apr 27, 2014 in IRF tantárgy by ldani7492 (39 points)  

A következő problémával találtam szembe magam:
S3Emulátorhoz három átlagot mérő számlálóm van, ebből kettő AverageTimer32, egy pedig AverageCount64 típusú.
Ezeknek az értékét a kódban valahogy így változtatom:

AverateTimer32:
Stopwatch stopwatch = new Stopwatch();
stopwatch.Start();

// Műveletek

stopwatch.Stop();
AverateTimer321.IncrementBy(stopwatch.ElapsedTicks*1000); // ms
AverageBase
1.Increment();

AverageCount64:
// Műveletek
AverageCount641.IncrementBy(searchResponse.S3Objects.Count); // visszaadott objectek száma
AverageBase
2.Increment();

A gond az, hogy a mérésekből úgy tűnik, hogy ez így mindig csak pillanatnyi értéket fog visszaadni:

https://i.imgur.com/Yq4Ya6G.png

Mi lehet a hiba szerintetek?
Írtak olyasmit, hogy globális stopwatch-ot kéne használni, de ez nekem nem segített, a AverageCount64-ot meg végképp nem magyarázza meg, ahol nem is használom az órát.

1 Answer

0 votes
answered Apr 27, 2014 by davidhonfi (371 points)  

Ajánlom a következő két oldalt a megértéshez (főleg a formulákat ;) ), és akkor valószínűleg tudni fogod a választ a kérdésedre.

http://www.aheil.de/2012/08/03/understanding-average-performance-counter-in-net/

http://msdn.microsoft.com/en-us/library/vstudio/system.diagnostics.countersample

commented Apr 27, 2014 by ldani7492 (39 points)  
Hm. Én is így csináltam, és a grafikon alatt a átlag értéke jót is mutat, de a grafikonon csak tüskéket látok
...