水木社区手机版
首页
|版面-Java技术(Java)|
新版wap站已上线
返回
1/1
|
转到
主题:参数和直接返回,哪个占用内存高?
1楼
|
guestking
|
2021-05-07 08:40:07
|
展开
感觉后者内存省一点
另外如果考虑内存消耗的话,用递归本身就比较耗内存
可以考虑改成自己写stack,然后循环
【 在 tortelee (hust-wh) 的大作中提到: 】
: 如图。都是递归,一种将结果返回,另一种是作为参数传递更改,都用到了函数栈,消耗的内存区别大吗?
: 手写的应该是,seriesByPre(head.left, res);
: seriesByPre(head.right,res);
: ...................
--
FROM 180.167.95.*
3楼
|
guestking
|
2021-05-07 08:56:36
|
展开
我之前写过一个很深的递归,比较容易内存溢出,改成stack就好了
我分析是因为递归的时候,局部变量占的内存都不能释放,要等递归出来的结果
但是用stack配合循环,每次循环完,局部变量的内存都可以回收掉
【 在 tortelee (hust-wh) 的大作中提到: 】
: 对于遍历本身,不考虑额外的参数情况,栈与递归内存都是ON吧。加上参数的话,用栈也不会让参数空间省去,每次while,都要使用这个参数,也需要内存。
--
FROM 180.167.95.*
1/1
|
转到
选择讨论区
首页
|
分区
|
热推
BYR-Team
©
2010.
KBS Dev-Team
©
2011
登录完整版