python使用完一个函数,如何实时释放内存

xuzhijun969 2019-09-19 03:13:33
比如有两个函数,格式大致如下,手打,忽略格式 由于funb会产生大量的内存,请问如何调用完就释放内存 def funb(x): count = 0 for i in range(1, x+1): count = count + i def funa(): print funb(10000000000) main: funa()
...全文
7173 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
dabingsou 2019-11-04
  • 打赏
  • 举报
回复
看看Python的垃圾回收机制,内存的回收不是实时的,当然你也可以调用gc.collect()来主动回收。看别人的回复不能全信,有的回复也是一知半解,让不懂的人感觉貌似正确,这样容易误导,还是要自己查查资料。 另外,对于生成一个很大的数据来做遍(range(1, x+1)),这个确实耗内存,可以用yield生成迭代器来替代。
无别052 2019-11-03
  • 打赏
  • 举报
回复 1
你说的应该是做1服务端的时候内存占用一直降不下来吧,这个可以参考https://blog.csdn.net/jiangjiang_jian/article/details/79140742
小熊之怒 2019-09-20
  • 打赏
  • 举报
回复
引用 3 楼 xuzhijun969 的回复:
[quote=引用 2 楼 小熊之怒的回复:]你理解的funb产生大量内存,大量在哪呢?
count 吗? 对计算机底层,count就像一个篮子,一直往一个篮子里面加东西,内存就一个,所以不会产生大量。
i 吗? 一个 i 一个篮子,生成一个用一个,完了再生成,再用,也不会产生大量内存啊。

假如:你这里定义了x个变量,也就是x个篮子,那么在函数运行结束后,这些篮子就被回收了。(自动回收)
python在自身语言的基础上,把回收内存已经自己搞定了。

如果想深入了解内存使用情况,去学C语言吧,学起来更形象点。

解答很详细,谢谢
我之前在python2上,内存超限,换成python3就没这个问题了,以后用python3[/quote]
可以看看python2和python3的存储最大值,这应该不是产生大量内存问题,是计算结果超过变量能保存的最大值(这个只是猜测)
也就是,一个变量(篮子)最大能存储的值,有上限的,不会让你一直放。你的funb(x)参数x是一个很大的值,count算出来也是一个很大的值,这个值可能因为变量存储的最大值固定,你这个值太大,超过了这个值,所以会报错。
可以拿着报错,去百度查查原因。应该是这个问题。

xuzhijun969 2019-09-20
  • 打赏
  • 举报
回复
引用 2 楼 小熊之怒的回复:
你理解的funb产生大量内存,大量在哪呢?
count 吗? 对计算机底层,count就像一个篮子,一直往一个篮子里面加东西,内存就一个,所以不会产生大量。
i 吗? 一个 i 一个篮子,生成一个用一个,完了再生成,再用,也不会产生大量内存啊。

假如:你这里定义了x个变量,也就是x个篮子,那么在函数运行结束后,这些篮子就被回收了。(自动回收)
python在自身语言的基础上,把回收内存已经自己搞定了。

如果想深入了解内存使用情况,去学C语言吧,学起来更形象点。
解答很详细,谢谢 我之前在python2上,内存超限,换成python3就没这个问题了,以后用python3
fearlazy 2019-09-20
  • 打赏
  • 举报
回复
函数里的局部变量在函数执行后就释放了吧
小熊之怒 2019-09-19
  • 打赏
  • 举报
回复
你理解的funb产生大量内存,大量在哪呢?
count 吗? 对计算机底层,count就像一个篮子,一直往一个篮子里面加东西,内存就一个,所以不会产生大量。
i 吗? 一个 i 一个篮子,生成一个用一个,完了再生成,再用,也不会产生大量内存啊。

假如:你这里定义了x个变量,也就是x个篮子,那么在函数运行结束后,这些篮子就被回收了。(自动回收)
python在自身语言的基础上,把回收内存已经自己搞定了。

如果想深入了解内存使用情况,去学C语言吧,学起来更形象点。
铖邑 2019-09-19
  • 打赏
  • 举报
回复
我的理解,如果是在一个函数里面用到list,里面元素大量增加,返回之后,局部变量应该是自动释放内存的啊

37,719

社区成员

发帖
与我相关
我的任务
社区描述
JavaScript,VBScript,AngleScript,ActionScript,Shell,Perl,Ruby,Lua,Tcl,Scala,MaxScript 等脚本语言交流。
社区管理员
  • 脚本语言(Perl/Python)社区
  • IT.BOB
加入社区
  • 近7日
  • 近30日
  • 至今

试试用AI创作助手写篇文章吧