Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/25.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
.net 使用日期时间进行精确计时是否可能?_.net - Fatal编程技术网

.net 使用日期时间进行精确计时是否可能?

.net 使用日期时间进行精确计时是否可能?,.net,.net,我想测试代码中某些方法和SQL查询所需的时间。我试着做了以下几点: DateTime start = DateTime.Now; //Do something DateTime end = DateTime.Now; TimeSpan ts = end - start; int millis = ts.Milliseconds; 但我觉得这不是正确的方法。对于某些方法,我经常返回值1,而对于其他方法,则返回值200。是否有准确的方法来测量和记录这种情况?使用类 提供一组方法和属性,您可

我想测试代码中某些方法和SQL查询所需的时间。我试着做了以下几点:

DateTime start = DateTime.Now;

//Do something

DateTime end = DateTime.Now;

TimeSpan ts = end - start;

int millis = ts.Milliseconds;
但我觉得这不是正确的方法。对于某些方法,我经常返回值1,而对于其他方法,则返回值200。是否有准确的方法来测量和记录这种情况?

使用类


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

    using System.Diagnostics;
    // ...

    Stopwatch sw = new Stopwatch();

    sw.Start();

    // ...

    sw.Stop();

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

不可以。请使用System.Diagnostics.Stopwatch。
DateTime
基于100纳秒的刻度,所以它不应该是您的限制。但是,
DateTime.Now
只会每隔几毫秒更新一次,这会导致您观察到的行为。谢谢,所以我现在知道,对于任何需要精确性的操作,都不要使用DateTime。
    using System.Diagnostics;
    // ...

    Stopwatch sw = new Stopwatch();

    sw.Start();

    // ...

    sw.Stop();

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