How can I find out how much time my C# code takes to run?
I recommend using a profiling tool such as ANTS to test the speed of your application and find slow code. This will allow you to do a line-by-line test of execution times.
The Stopwatch class offers high-precision timing in .NET. It is capable of measuring time with sensitivity of around 100s of nanoseconds (fractions of milliseconds). To get the exact resolution, read the value of Stopwatch.Frequency.
var timer = System.Diagnostics.Stopwatch.StartNew();
// Run code here.
var elapsed = timer.ElapsedMilliseconds.
Also, be sure to run your code repeatedly (as many times as is feasible) to get a better average time, as well as to reduce the effects of fluctuations in CPU load.
As others have said, the Stopwatch class is good for the simple timing side of things. Other bits to bear in mind though:
If you're interested in benchmarking, I have the MiniBench project which I must get round to working on again at some point - it's not quite where I want it to end up, but it's a start. I talk more about what I want to achieve with it in this blog post.
If you want simple, just put an N-iteration loop around it and use StopWatch (or just a wristwatch) and divide by N. For example, if you want microseconds, let N = 1000000. If you're worried about the overhead of the loop, just unroll it by a factor of 10.
Check out the Stopwatch class.
Check out the Stopwatch class:
Stopwatch sw = new Stopwatch();
sw.Start();
// your code here
sw.Stop();
TimeSpan elapsedTime = sw.Elapsed;