Visual Studio中应用程序的运行时间

时间:2012-04-25 15:03:04

标签: visual-studio-2010 c#-4.0

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

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

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

3 个答案:

答案 0 :(得分:3)

您应该使用专门为此设计的Stopwatch类。

为了避免测量JIT时间,您还应该在测量任何内容之前至少运行一次算法,以便JIT有时间运行。

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

答案 1 :(得分:0)

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

  • 如果您可以预测循环次数和每个阶段的数量 循环,创建一个数组来存储时序信息。如果没有,请使用 动态清单。
  • 执行期间,在该阵列中存储时间和附加信息 或列表。
  • 如果可能,请不要将消息与时间一起存储,而不是代码 例1 =阶段1,2 =阶段2等
  • 在执行结束时,将所有信息转储到屏幕或文件,并根据需要格式化消息。

答案 2 :(得分:0)

使用stopwatch class。请看下面的方法以获得示例。

using System.Diagnostics;

    public void yourAlgorithm()
        {

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

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


        }