using System.Collections.Generic;
using System.Diagnostics;
public static void Main(string[] args) {
Console.Write("Calculation per second (Calc/s): ");
int curLeft = Console.CursorLeft, curTop = Console.CursorTop;
int MaximumSamplingTickCount = 10000;
Queue<long> sampledTicks = new Queue<long>(MaximumSamplingTickCount);
long currentTick, previousTick;
Stopwatch sw = new Stopwatch();
previousTick = sw.ElapsedTicks;
currentTick = sw.ElapsedTicks;
long deltaTick = currentTick - previousTick;
if (sampledTicks.Count >= MaximumSamplingTickCount) sampleTotal -= sampledTicks.Dequeue();
sampledTicks.Enqueue(deltaTick);
sampleTotal += deltaTick;
float average = (float) sampleTotal / sampledTicks.Count;
float cps = Stopwatch.Frequency / average;
Console.SetCursorPosition(curLeft, curTop);
Console.WriteLine("{0:N2} ", cps);
previousTick = currentTick;