Use Stopwatch to Measure Code Execution Time
One of the most common tasks when analyzing performance and optimizing code is measuring the time it takes to execute the code in question. Before .NET 2.0 you had to develop your own high resolution timer for the job by wrapping the unmanaged calls to
I kept using the same class in .NET 2.0 but just the other day I stumbled across the
Stopwatch class in the
System.Diagnostics namespace. It implements the same high resolution timer functionality out of the box, so there's no need to use unmanaged calls to achieve it anymore.
And the basic usage couldn't be simpler:
using System.Diagnostics; // ... Stopwatch sw = new Stopwatch(); sw.Start(); // do some processing here sw.Stop(); Debug.WriteLine("Time elapsed:" + sw.ElapsedMilliseconds.ToString());
One wonders what other hidden treasures lie in the class library yet to be discovered.