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?
No comments:
Post a Comment
NOTE: Anonymous Commenting has been turned off for a while... The comment spammers are just killing me...
ALL comments are moderated. I will review every comment before it will appear on the blog.
Your comment WILL NOT APPEAR UNTIL I approve it. This may take some hours...
I reserve, and will use, the right to not approve ANY comment for ANY reason. I will not usually, but if it's off topic, spam (or even close to spam-like), inflammatory, mean, etc, etc, well... then...
Please see my comment policy for more information if you are interested.
Thanks,
Greg
PS. I am proactively moderating comments. Your comment WILL NOT APPEAR UNTIL I approve it. This may take some hours...