递归可能比等效的迭代解决方案消耗更多的内存,因为后者可以被优化以仅占用它严格需要的内存,但是递归将所有局部变量保存在堆栈上,因此占用的内容比严格需要的多一些.这只是内存限制环境中的一个问题(这种情况并不罕见),也可能是非常深的递归(几十个递归分支最多占用几百个字节,不会对服务器的内存占用量造成严重影响) ),所以"最后的手段"是一个过高的.
但是当分析显示足迹影响很大时,一个优化 - 重构你绝对可以执行的是递归删除 - 这是几十年前学术文献中的一个热门话题,但通常不难手工制作(特别是如果你保持你所有的方法,递归或其他方式,合理地小,你应该;-).
| 归档时间: |
|
| 查看次数: |
713 次 |
| 最近记录: |