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