我正在解决c#中的一些算法问题并将它们作为控制台应用程序运行。
要检查应用程序的效率,我想了解它们的运行时间。
目前我在节目开始时和结束时打印时间并计算时差,但有没有办法减少Observer' effect?
一些我不知道的内置工具/插件?
答案 0 :(得分:3)
您应该使用专门为此设计的Stopwatch
类。
为了避免测量JIT时间,您还应该在测量任何内容之前至少运行一次算法,以便JIT有时间运行。
在测量算法时,您应该每次运行数百次并获取平均运行时间。
答案 1 :(得分:0)
由于观察者的影响,最重要的延迟来源是打印本身。另一个潜在的延迟是调试消息文本格式化。所以我建议如下:
答案 2 :(得分:0)
使用stopwatch class。请看下面的方法以获得示例。
using System.Diagnostics;
public void yourAlgorithm()
{
Stopwatch timePerParse = Stopwatch.StartNew();
/** -- TODO --**/
timePerParse.Stop();
Console.WriteLine(timePerParse.ElapsedMilliseconds);
}