2016-06-22 2 views
1

Ich habe eine Anwendung, die ein bestimmtes Ereignis überwacht und dann beginnt, Dinge zu berechnen, sobald es passiert. Event sind unregelmäßig und können von Bündeln in einer Sekunde zu keinem für lange Zeit in einem beliebigen Muster kommen ..C# Leistungszähler Timer100Ns. Wie man?

I %% die Zeit die Anwendung ausgelastet ist (ähnlich CPU% Verbrauch)

messen wollen ich möchte

Zwei Fragen Timer100Ns Zähler verwenden:

  1. Muss ich es durch Hardware erhöhen Zecken oder von Datetime Zecken (zB wenn ich Stoppuhr verwenden - verwende ich sw.ElapsedTicks oder sw.Elapsed.Ti cks)?

  2. Benötige ich einen Basiszähler?

so bin ich über so etwas schreiben:

Stopwatch sw = new Stopwatch(); 
sw.Start(); 
// Do some operation which is irregular by nature 
sw.Stop(); 

// Measure utilization of the application 
myCounterOfTypeTimer100Ns.IncrementBy(sw.Elapsed.Ticks); 

Wird es tun?

EDIT: Ich experimentierte mit ihm ein bisschen und jetzt ist es noch verwirrender .. Es zeigt tatsächlich die Werte, die ich es inkrementieren. Nicht %%.

+0

nichts Interessantes in dieser Klasse. es ist nur ein Inhaber eines Feldes, das PerformanceCounter vom Typ Timer100Ns ist. Die MSDN sagt: 'Ein Prozentzähler, der die aktive Zeit einer Komponente als Prozentsatz der gesamten verstrichenen Zeit des Abtastintervalls anzeigt. '.. Vielleicht gibt es andere Wege. Aber ich würde gerne herausfinden, wie man das benutzt. –

+0

Moment mal - was hat es mit einem Multi-Counter zu tun? ein Multi-Counter benötigt, wenn Sie mehrere Metriken gleichzeitig verfolgen .. völlig zufällige Informationen .. –

Antwort

0

Das Geheimnis entwirrt. Es scheint derzeit so, dass ich es nicht so benutze, wie es benutzt werden sollte (oder besser gesagt, ich habe TFM nicht richtig gelesen). Wenn das Sampling-Intervall 1s beträgt (wie im Live-Fenster) und Sie Intervalle von mehr als 1s haben, zeigt es Ihnen eine Nonsense-Nummer ... Um Glätte zu erreichen, muss die Aktivität, die Sie messen wollen, in Bruchteilen von 1s liegen. Ansonsten ist dieser Zähler keine gute Idee ..

Die Antwort für diese Art von Problem (obwohl es nicht offensichtlich ist, aber immer noch störend, dass niemand es in einer Woche vorgeschlagen hat) ist eigentlich SampleCounter.