我正在运行这段代码:
public static void func(int i)
{
Console.WriteLine(i);
func(i + 1);
}
static void Main(string[] args)
{
func(0);
}
显然它会导致 StackOverflowException,但会发生一些奇怪的事情:从 i = 0 到 i = 10,000 它运行得非常慢,(在我的计算机上大约 13 秒,使用 visual studio 2015)但是从 10,000 到 20,000 它几乎立即(大约 1第二)。为什么会这样?
谢谢。
最佳答案
您是否将控制台窗口的缓冲区大小定义为 10,000 行? WriteLine
是代码中最慢的部分。一旦达到最大行数,控制台窗口似乎会更快。
关于c# - 10,000 后递归加速,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36413551/