玩蛇网提供最新Python编程技术信息以及Python资源下载!
您现在的位置: 玩蛇网首页 > Python问题解答 > 正文内容

Python内存回收模块gc这段代码应该如何理解

1、例如:

import gc
import sys
gc.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 a
del b
print gc.collect()

不能进入垃圾,

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

2、还有一个问题

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

请教大家!!!

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

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

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

玩蛇网文章,转载请注明出处和文章网址:http://www.iplaypy.com/wenda/wd18500.html

相关文章 Recommend

玩蛇网Python互助QQ群,欢迎加入-->: 106381465 玩蛇网Python新手群
修订日期:2017年06月07日 - 19时43分30秒 发布自玩蛇网

我要分享到:

必知PYTHON教程 Must Know PYTHON Tutorials

必知PYTHON模块 Must Know PYTHON Modules