How to measure the time an operation takes with DateTime and StopWatch

Posted: (EET/GMT+2)

 

If you need to measure how long an operation takes in C#, there are two simple approaches: using DateTime or using Stopwatch.

The simplest way is to record the start and end time and subtract them. The result is a TimeSpan. This method is super-easy:

DateTime start = DateTime.UtcNow;

// Operation to measure
DoWork();

DateTime end = DateTime.UtcNow;
TimeSpan duration = end - start;
Console.WriteLine(duration.TotalSeconds);

The subtraction returns a TimeSpan, which exposes helpful properties such as TotalMilliseconds, TotalSeconds, and TotalMinutes.

For more accurate measurements, especially for short operations, you can use the Stopwatch class. Here is an example:

using System.Diagnostics;

Stopwatch sw = Stopwatch.StartNew();

// Operation to measure
DoWork();

sw.Stop();
Console.WriteLine(sw.Elapsed.TotalSeconds);

The Stopwatch uses a high-resolution timer when available and is generally the better choice for performance measurements.

Happy timing!