查看代码(例如方法调用)花费了多长时间的最准确方法是什么?我猜最简单,最快的方法是:DateTime start = DateTime.Now;{ // Do some work}TimeSpan timeItTook = DateTime.Now - start;但是,这有多精确?有更好的方法吗?
3 回答
守着一只汪
TA贡献1872条经验 获得超3个赞
更好的方法是使用Stopwatch类:
using System.Diagnostics;
// ...
Stopwatch sw = new Stopwatch();
sw.Start();
// ...
sw.Stop();
Console.WriteLine("Elapsed={0}",sw.Elapsed);
jeck猫
TA贡献1909条经验 获得超7个赞
正如其他人所说,Stopwatch在这里使用是一个很好的类。您可以将其包装为有用的方法:
public static TimeSpan Time(Action action)
{
Stopwatch stopwatch = Stopwatch.StartNew();
action();
stopwatch.Stop();
return stopwatch.Elapsed;
}
(请注意使用Stopwatch.StartNew()。我宁愿先创建秒表,再Start()进行简单调用。)显然,这会招致调用委托的麻烦,但是在大多数情况下,这是无关紧要的。然后,您将编写:
TimeSpan time = StopwatchUtil.Time(() =>
{
// Do some work
});
您甚至可以ITimer为此建立一个接口,并StopwatchTimer, CpuTimer在可用时使用etc的实现。
添加回答
举报
0/150
提交
取消