Task

Write a program which uses a timer (with the least granularity available
on your system) to time how long a function takes to execute.

Whenever possible, use methods which measure only the processing time used
by the current process; instead of the difference in system time
between start and finish, which could include time used by
other processes on the computer.

This task is intended as a subtask for Measure relative performance of sorting algorithms implementations.




using System;
using System.Linq;
using System.Threading;
using System.Diagnostics;
 
class Program {
    static void Main(string[] args) {
        Stopwatch sw = new Stopwatch();
 
        sw.Start();
        DoSomething();
        sw.Stop();
 
        Console.WriteLine("DoSomething() took {0}ms.", sw.Elapsed.TotalMilliseconds);
    }
 
    static void DoSomething() {
        Thread.Sleep(1000);
 
        Enumerable.Range(1, 10000).Where(x => x % 2 == 0).Sum();  // Sum even numers from 1 to 10000
    }
}