我查看了http://programming.lispdream.com/blog/2011/06/recursion-vs-iteration/,发现在他执行阶乘函数的递归和迭代实现时,迭代实际上需要更长的时间给定n = 1,000。我不知道为什么(他没有解释,而是说这是对读者的练习)。对不起,我很陌生。
我查看了http://programming.lispdream.com/blog/2011/06/recursion-vs-iteration/,发现在他执行阶乘函数的递归和迭代实现时,迭代实际上需要更长的时间给定n = 1,000。我不知道为什么(他没有解释,而是说这是对读者的练习)。对不起,我很陌生。
Answers:
我只能猜测,我什至不确定这些基准是来自C还是来自SBLC代码。我的猜测是罪魁祸首是变异变量。1000!这是一个很大的数字,也许用中间对象填充堆栈并进行清理要比创建副本和覆盖更快。