递归对服务器的影响是什么?

Jai*_*cia 2 java recursion websphere

我听说在服务器上运行递归代码会影响性能.这个陈述是多么真实,应该使用递归方法作为最后的手段?

Ale*_*lli 6

递归可能比等效的迭代解决方案消耗更多的内存,因为后者可以被优化以仅占用它严格需要的内存,但是递归将所有局部变量保存在堆栈上,因此占用的内容比严格需要的多一些.这只是内存限制环境中的一个问题(这种情况并不罕见),也可能是非常深的递归(几十个递归分支最多占用几百个字节,不会对服务器的内存占用量造成严重影响) ),所以"最后的手段"是一个过高的.

但是当分析显示足迹影响很大时,一个优化 - 重构你绝对可以执行的是递归删除 - 这是几十年前学术文献中的一个热门话题,但通常不难手工制作(特别是如果你保持你所有的方法,递归或其他方式,合理地小,你应该;-).

  • 将变量放在堆栈上**不会消耗任何额外的内存**.堆栈大小在创建线程时分配,不会增长. (2认同)