Python 板


LINE

嗨,新手到此拜会. 想问个问题,我有个工作需要用回圈读大量资料. 我想,假如在回圈中指定了很多区域变数,这些变数空间在下一圈都直接抛弃掉吗? 或者,我是否该在回圈跑到一个数量的圈数,就开一次gc? --



※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 118.167.145.113
※ 文章网址: http://webptt.com/cn.aspx?n=bbs/Python/M.1400610793.A.346.html
1F:→ apua:like this? ``for i in [1,2]: a=1`` 05/21 14:31
2F:→ yauhh:Yes. Many variables local to for loop. 05/21 17:24
3F:→ grtfor:没记错的话,python 的gc call了,也不会马上回收 05/21 23:32
4F:推 ya790206:在 python,每次呼叫 gc.collect() 都会真的跑一次 05/22 23:00
5F:→ ya790206:garbage collect。详见CPython 原始码Modules/gcmodule.c 05/22 23:01
6F:→ ya790206:的 gc_collect function 。 05/22 23:02
7F:→ ya790206:这里说的是官方网站以c语言写的直译器,其他的我不知道 05/22 23:03
8F:→ yauhh:那假如不用gc,回圈中的变数会累积吗? 05/23 12:09
9F:推 ya790206:如果你的"不用gc"的意思是指gc.disable()来停用 gc 的话 05/23 22:28
10F:→ ya790206:那麽你所产生的物件都不会被删除。如果你"不用gc"指不 05/23 22:28
11F:→ ya790206:呼叫gc.collect() ,则系统会在必要时自动呼叫 05/23 22:29
12F:→ ya790206:gc.collect()。你不必刻意去呼叫他(除非你知道你在干嘛) 05/23 22:29
13F:→ ya790206:一直呼叫gc.collect()不会出事,只是一直再做没意义的事 05/23 22:31
14F:→ ya790206:而已 05/23 22:31
15F:→ yauhh:唉,我真正在问的问题是回圈中的变数所占的记忆体空间,但你却 05/23 23:03
16F:→ yauhh:只在gc那边绕. gc我知道啦,如果我想用就会用,但要用也要用在 05/23 23:04
17F:→ yauhh:适当的情况. 而我的问题就是在询问/寻找那个适当的情况而已. 05/23 23:05
18F:→ yauhh:不要继续在gc绕了. 我没问gc的问题. 05/23 23:05
先为我问了问题之後,再嫌答题答案的动作致歉。但我很直接的想法是:假如你不知道 我问的是什麽,并且不知道其实你没有回答到我的问题,那我真想要的答案就不会出现。 别人会以为,我真的再问gc怎麽用。 我的问题缘起是,我有一批现有XML资料要处理,并且未来有更多XML资料。 由於每个XML都小,但是XML档的数量很多,所以我的程式显然是一个回圈,每一圈里头 都有各自独立的档案读取、解码转换为CSV的动作,而且是在一圈中就跑出好几个XML或 CSV的物件。 这个程式,虽然我还没写,但是我可以先评估程式的结构、效能,资源的使用与浪费。 因此,询问「回圈使用gc」的问题,其实是要等熟悉python VM的人回答一些底层机制 的因素,像是回圈中的变数,有没有根据dependency来决定要不要启动gc。我评估回圈 中的变数是否累积,用意是要考量是否需要为了这一点写容错的程式。 虽然你很用功看了python的源码有关gc.collect()的那一行,但是,你的讨论似乎谈到 一个很小的层面,你只用gc.collect()这一段程式,就想要说明python整个系统gc机制, 这样有意义吗?我倒觉得,不要浪费时间,如果能有精力看VM源码,来bbs回答一个很小 的重点,实在是糟蹋。 ※ 编辑: yauhh (118.167.144.208), 05/23/2014 23:48:54
19F:→ ya790206:我去年就已经看完 python gc 演算法和 vm 如何执行程式码 05/24 11:03
20F:→ ya790206:并不是为了回答你问题而去看程式码。 05/24 11:04
21F:推 timTan:再问清楚一点就好,何必讲些失焦的话 05/24 18:23







like.gif 您可能会有兴趣的文章
icon.png[问题/行为] 猫晚上进房间会不会有憋尿问题
icon.pngRe: [闲聊] 选了错误的女孩成为魔法少女 XDDDDDDDDDD
icon.png[正妹] 瑞典 一张
icon.png[心得] EMS高领长版毛衣.墨小楼MC1002
icon.png[分享] 丹龙隔热纸GE55+33+22
icon.png[问题] 清洗洗衣机
icon.png[寻物] 窗台下的空间
icon.png[闲聊] 双极の女神1 木魔爵
icon.png[售车] 新竹 1997 march 1297cc 白色 四门
icon.png[讨论] 能从照片感受到摄影者心情吗
icon.png[狂贺] 贺贺贺贺 贺!岛村卯月!总选举NO.1
icon.png[难过] 羡慕白皮肤的女生
icon.png阅读文章
icon.png[黑特]
icon.png[问题] SBK S1安装於安全帽位置
icon.png[分享] 旧woo100绝版开箱!!
icon.pngRe: [无言] 关於小包卫生纸
icon.png[开箱] E5-2683V3 RX480Strix 快睿C1 简单测试
icon.png[心得] 苍の海贼龙 地狱 执行者16PT
icon.png[售车] 1999年Virage iO 1.8EXi
icon.png[心得] 挑战33 LV10 狮子座pt solo
icon.png[闲聊] 手把手教你不被桶之新手主购教学
icon.png[分享] Civic Type R 量产版官方照无预警流出
icon.png[售车] Golf 4 2.0 银色 自排
icon.png[出售] Graco提篮汽座(有底座)2000元诚可议
icon.png[问题] 请问补牙材质掉了还能再补吗?(台中半年内
icon.png[问题] 44th 单曲 生写竟然都给重复的啊啊!
icon.png[心得] 华南红卡/icash 核卡
icon.png[问题] 拔牙矫正这样正常吗
icon.png[赠送] 老莫高业 初业 102年版
icon.png[情报] 三大行动支付 本季掀战火
icon.png[宝宝] 博客来Amos水蜡笔5/1特价五折
icon.pngRe: [心得] 新鲜人一些面试分享
icon.png[心得] 苍の海贼龙 地狱 麒麟25PT
icon.pngRe: [闲聊] (君の名は。雷慎入) 君名二创漫画翻译
icon.pngRe: [闲聊] OGN中场影片:失踪人口局 (英文字幕)
icon.png[问题] 台湾大哥大4G讯号差
icon.png[出售] [全国]全新千寻侘草LED灯, 水草

请输入看板名称,例如:BabyMother站内搜寻

TOP