[英]algorithm performance c#
我想衡量我的代码的性能..如果我以时间为标准,则我有此代码
DateTime oldDate = new DateTime(2002,7,15);
DateTime newDate = DateTime.Now;
// Difference in days, hours, and minutes.
TimeSpan ts = newDate - oldDate;
// Difference in days.
int differenceInDays = ts.Milliseconds ;
问题1:这是我测试算法性能的唯一方法吗? 问题2:C#还提供了哪些其他标准来测试性能? 问候
使用System.Diagnostics.Stopwatch
总是更好
检查此链接以获取更多详细信息。 性能测试:使用System.Diagnostics.Stopwatch进行精确的运行时测量
使用秒表类
//启动秒表:
var watch = Stopwatch.StartNew();
//执行代码
watch.Stop(); //This stops the watch
可以通过使用Elapsed,ElapsedMilliSeconds和ElapsedTicks属性来测量经过时间。
尝试使用StopWatch类。 它具有比DateTime和TimeSpan类更高的分辨率。
此外,您可以将Windows性能计数器视为一种在应用程序运行时评估性能的方法,以便可以监视应用程序的运行状况。
您可以使用探查器(例如基于工具的SlimTune )或通过System.Diagnostics.Stopwatch
测量时间 。 它具有比DateTime
hack更好的精度。
如果您确实要使用DateTime
(因为它更易于使用),请使用UtcNow
而不是Now
。 速度稍快一些(因为当前日期和时间在Windows中以UTC格式存储),此外,您可以在DST更改时间附近测试程序:-)。
但是,是的,请使用Stopwatch
。
Stopwatch watch = Stopwatch.StartNew();
watch.Stop()
啊...非常重要...您的代码有误
ts.TotalMilliseconds
昨天我也犯了同样的错误,但是我正在测量第二次的时间,所以更难发现:-)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.