2012-04-25 44 views
1

我正在解决c#中的一些算法问题,并将它们作为控制台应用程序运行。在Visual Studio中运行应用程序的时间

要检查应用程序的效率,我想查看它们的运行时间。

目前我打印时间在节目的开始和结束时,计算的时间差,但有降低Observer' effect的方法吗?
我不知道的一些内置工具/插件?

回答

2

您应该使用Stopwatch类,它是专门用来做。

为了避免测量时JIT,你也应该测量什么,这样的JIT有时间来运行之前运行的每个算法至少一次。

测量算法时,您应该运行每一百次,并采取平均运行时间。

0

由于观察者的影响,最重要的延迟来源是打印本身。另一个潜在的延时器是调试消息文本格式。因此,我建议如下:

  • 如果你可以预见阶段的循环次数和数量每 循环,创建一个数组来存储定时信息。如果不是,请使用 动态列表。
  • 在执行过程中,在该阵列 或列表中存储时间和aditional信息。
  • 如果可能的话,不存储消息用的时间,但代码一起用于 例如1 =阶段1,2 =阶段2等
  • 在执行结束时,自卸所有信息来筛选或文件并根据需要格式化消息。
0

使用stopwatch class。以下面的方法为例。

using System.Diagnostics; 

    public void yourAlgorithm() 
     { 

      Stopwatch timePerParse = Stopwatch.StartNew(); 
      /** -- TODO --**/ 

      timePerParse.Stop(); 
      Console.WriteLine(timePerParse.ElapsedMilliseconds); 


     } 
相关问题