查找递归函数的执行时间

时间:2012-11-29 14:14:13

标签: c# function recursion timer stopwatch

我可以使用秒表来查找代码的执行时间

示例:

timer.Start();
for(int i=0; i<100; i++)
{
    ...
}
timer.Stop();
lTime.Text = timer.Elapsed.TotalMilliseconds.ToString();

但是如果我调用一个使用递归的函数呢?

timer.Start();
recur(a, b);
timer.Stop();
lTime.Text = timer.Elapsed.TotalMilliseconds.ToString();

显示执行时间为0。

编辑:这段代码运行正常......我在递归函数中有一个错误...

1 个答案:

答案 0 :(得分:1)

以下适用于我:

using System.Diagnostics;

namespace StackOverflow.Demos
{
    class Program
    {
        public static void Main(string[] args) 
        {
            Stopwatch timer = new Stopwatch();
            timer.Start();
            recur(10000, new object());
            timer.Stop();
            Console.WriteLine( timer.Elapsed.TotalMilliseconds.ToString());
            Console.ReadKey();
        }
        private static void recur(int a, object b)
        {
            if (a > 0)
                recur(--a, b);
        }
    }
}