Measure time (ms) to complete task

Hi, I have console program that I'll try to optimizie for speed. I need a way to measure how long it takes to complete certain tasks. I'd like to be able to say something like this anywhere in the code:

// Start counting from here

// Do something...

// Report time in milliseconds here

Ideas? I've been looking at the Timer class, but since these are just temporary checks, I'd rather not put everything in a while block. I hope there's a way to just get the time at two points and subtract the first from the second.
liljegrenAsked:
Who is Participating?
 
TheAvengerCommented:
DateTime start = DateTime.Now;

// do something

TimeSpan timeElapsed = DateTime.Now - start;

timeElapsed.ToString() -> gives you the time in the format [-][d.]hh:mm:ss[.ff]
timeElapsed.Seconds, Milliseconds, Minutes, Days, Hours, Ticks, etc. can give you all the info you may need.

For more info see: http://msdn.microsoft.com/library/default.asp?url=/library/en-us/cpref/html/frlrfsystemtimespanclasstopic.asp
0
 
windsofchangeCommented:
long begtime=System.DateTime.Now.Ticks;

// do something

long endtime=System.DateTime.Now.Ticks;

long ergtime=endtime-begtime;
double ergsec=Math.Round((double)ergtime/10000000D,2);

gives you the time in seconds with 2 commas
0
 
testnCommented:
You'd better use Hi Performance Timer since the Datetime object can measure up to 10ms accuracy.
http://www.codeproject.com/csharp/highperformancetimercshar.asp
0
 
TheAvengerCommented:
testn, there is always something to learn from you! 10x although your answer was not accepted!
0
 
liljegrenAuthor Commented:
Yes, thanks for the link testn. For now, the answer from TheAvenger is good enough for me, but I'll check it later.
0
Question has a verified solution.

Are you are experiencing a similar issue? Get a personalized answer when you ask a related question.

Have a better answer? Share it in a comment.

All Courses

From novice to tech pro — start learning today.