Python内存回收模块gc这段代码应该如何理解,pythongc,1、例如:import


1、例如:

import gcimport sysgc.set_debug(gc.DEBUG_STATS|gc.DEBUG_LEAK)a=[]b=[]a.append(b)print 'a refcount:',sys.getrefcount(a)print 'b refcount:',sys.getrefcount(b)del adel bprint gc.collect()

不能进入垃圾,

a,b都被切断,而且a.append(b)也不存在循环,为什么还是无法回收垃圾?

2、还有一个问题

我在windows中有一个数组a[],里面放了10k+条数据,内存显示60%,在del a、gc.collect()之后内存立马降至52%;
但是同样的代码操作在centos中却不起作用,内存释放不出来。

请教大家!!!

你都显式地删除了这两个变量,并且你也说了,不存在循环引用,那就直接被删掉了呗,哪还有垃圾?

a=[]  b=[]  a.append(b)  b.append(a)  del a  del b  print gc.collect() 

这样就可以看到垃圾收集的效果了

编橙之家文章,

评论关闭