关于.net:使用DateTime的精确计时可能吗?

Precision timing using DateTime possible?

本问题已经有最佳答案,请猛点这里访问。

我想测试代码中某些方法和SQL查询所需的时间。我尝试了以下操作:

1
2
3
4
5
6
7
8
9
DateTime start = DateTime.Now;

//Do something

DateTime end = DateTime.Now;

TimeSpan ts = end - start;

int millis = ts.Milliseconds;

但我觉得这样做是不对的。对于某些方法,我通常会得到1的值,而对于其他方法,我通常会得到200的值,是否有任何精确的方法来测量和记录这种情况?


使用秒表类。

1
2
3
4
Stopwatch stopWatch = new Stopwatch();
stopWatch.Start();
//your work
stopWatch.Stop();

提供一组方法和属性,您可以使用这些方法和属性使用Stopwatch类精确测量经过的时间。这真的很好,可以用来测量和比较算法的运行时间。

1
2
3
4
5
6
7
8
9
10
11
12
    using System.Diagnostics;
    // ...

    Stopwatch sw = new Stopwatch();

    sw.Start();

    // ...

    sw.Stop();

    Console.WriteLine("Elapsed={0}",sw.Elapsed);