PTT
Submit
Submit
选择语言
正體中文
简体中文
PTT
Python
[问题] 循环中想用gc处理内存
楼主:
yauhh
(小y宝贝)
2014-05-21 02:33:09
嗨,新手到此拜会.
想问个问题,我有个工作需要用循环读大量资料.
我想,假如在循环中指定了很多区域变量,这些变量空间在下一圈都直接抛弃掉吗?
或者,我是否该在循环跑到一个数量的圈数,就开一次gc?
作者:
apua
(Apua)
2014-05-21 14:31:00
like this? ``for i in [1,2]: a=1``
楼主:
yauhh
(小y宝贝)
2014-05-21 17:24:00
Yes. Many variables local to for loop.
作者:
grtfor
(哦啦啦)
2014-05-21 23:32:00
没记错的话,python 的gc call了,也不会马上回收
作者: ya790206 (残云夺月)
2014-05-22 23:00:00
在 python,每次呼叫 gc.collect() 都会真的跑一次garbage collect。详见CPython 原始码Modules/gcmodule.c的 gc_collect function 。这里说的是官方网站以c语言写的直译器,其他的我不知道
楼主:
yauhh
(小y宝贝)
2014-05-23 12:09:00
那假如不用gc,循环中的变量会累积吗?
作者: ya790206 (残云夺月)
2014-05-23 22:28:00
如果你的"不用gc"的意思是指gc.disable()来停用 gc 的话那么你所产生的物件都不会被删除。如果你"不用gc"指不呼叫gc.collect() ,则系统会在必要时自动呼叫gc.collect()。你不必刻意去呼叫他(除非你知道你在干嘛)一直呼叫gc.collect()不会出事,只是一直再做没意义的事而已
楼主:
yauhh
(小y宝贝)
2014-05-23 23:03:00
唉,我真正在问的问题是循环中的变量所占的内存空间,但你却只在gc那边绕. gc我知道啦,如果我想用就会用,但要用也要用在适当的情况. 而我的问题就是在询问/寻找那个适当的情况而已.不要继续在gc绕了. 我没问gc的问题.
作者: ya790206 (残云夺月)
2014-05-24 11:03:00
我去年就已经看完 python gc 算法和 vm 如何执行程式码并不是为了回答你问题而去看程式码。
作者:
timTan
(用口头禅区分年记)
2014-05-24 18:23:00
再问清楚一点就好,何必讲些失焦的话
继续阅读
Re: [问题] 读容量大的文字档
apua
Re: [问题]不用for循环寻找阵列中只出现过一次的资料
yauhh
[问题] 读容量大的文字档
sariel0322
[问题] 正则匹配问题
play9091
[问题] interactive mode下用script
jubilee
Re: [范例] 猜数目游戏
flarehunter
[范例] 猜数目游戏
bigpigbigpig
[问题] subprocess 呼叫 Teraterm 执行命令
lookat1205
[问题] 关于while跟break
ersfw4418
[问题] 如何计算影像的线段长度
ryoma0915
Links
booklink
Contact Us: admin [ a t ] ucptt.com