.NET Zone is brought to you in partnership with:

I’ve been a Windows developer since 3.0 and caught the Visual Basic wave early with v1. I’ve released a “production” application in every version of VB since then (except VB for DOS). Focusing on enterprise, line-of-business development I’ve built Call Center Applications, Mortgage finance systems, Customer Relationship Management tools and more recently I’ve been in the Litigation Support/Electronic Data Discovery/Electronically Stored Information space. Greg is a DZone MVB and is not an employee of DZone and has posted 271 posts at DZone. You can read more from them at their website. View Full User Profile

Using .NET Assist's Quick Stopwatch

08.31.2012
| 1452 views |
  • submit to reddit

.Net Assist - Quick Stopwatch

Often time you need a quick way to time a function or block of code, in early version of .NET you had to write some cumbersome code that relied on the DateTime object. With the introduction of the Stopwatch (.NET 2.0) things got better but still, it took lots of code to insert a simple timing logic:


Insert Declare, initialize and start statements before the code block to time.
Stop and display results after the code block.

Old way:

      string message = "Calculate 800K square roots";
      int roots = 800000;
 
      System.Diagnostics.Stopwatch sw = new System.Diagnostics.Stopwatch();
      sw.Start();
      CalcRoots(roots);
      sw.Stop();
      System.Diagnostics.Trace.WriteLine(string.Format("{0}: {1} (seconds)", 
                                       message, sw.Elapsed.TotalSeconds)); 

Better way:

 using (QuickStopwatch qsw = new QuickStopwatch(message))
        CalcRoots(roots);

I write that kind of quick and dirty timing/benchmarking code all the time. Seeing this QuickStopwatch approach was one of those "pwop" moments. It just seems so darn logical in hindsight, doesn't it?

Published at DZone with permission of Greg Duncan, author and DZone MVB. (source)

(Note: Opinions expressed in this article and its replies are the opinions of their respective authors and not those of DZone, Inc.)