我正在用 c# 解决一些算法问题并将它们作为控制台应用程序运行。
为了检查应用程序的效率,我想看看它们的运行时间是多少。
目前我正在打印程序开始和结束时的时间并计算时间差,但是有没有办法减少观察者的影响?
一些我不知道的内置工具/插件?
我正在用 c# 解决一些算法问题并将它们作为控制台应用程序运行。
为了检查应用程序的效率,我想看看它们的运行时间是多少。
目前我正在打印程序开始和结束时的时间并计算时间差,但是有没有办法减少观察者的影响?
一些我不知道的内置工具/插件?
您应该使用Stopwatch
专门为此而设计的类。
为避免测量 JIT 时间,您还应该在测量任何内容之前至少运行每个算法一次,以便 JIT 有时间运行。
在测量算法时,您应该将每个算法运行数百次并取平均运行时间。
使用秒表类。以下面的方法为例。
using System.Diagnostics;
public void yourAlgorithm()
{
Stopwatch timePerParse = Stopwatch.StartNew();
/** -- TODO --**/
timePerParse.Stop();
Console.WriteLine(timePerParse.ElapsedMilliseconds);
}
The most important source of delay due to observer's effect is printing itself. Another potential delayer is debug message text formatting. So I suggest the following: