繁体   English   中英

算法性能C#

[英]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#还提供了哪些其他标准来测试性能? 问候

使用秒表

//启动秒表:

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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM