为了账号安全,请及时绑定邮箱和手机立即绑定

精确的时间测量以进行性能测试

精确的时间测量以进行性能测试

FFIVE 2019-12-09 09:51:06
查看代码(例如方法调用)花费了多长时间的最准确方法是什么?我猜最简单,最快的方法是: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);


查看完整回答
反对 回复 2019-12-09
?
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的实现。


查看完整回答
反对 回复 2019-12-09
  • 3 回答
  • 0 关注
  • 832 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信